c 知識點回顧

2021-06-09 11:28:35 字數 2029 閱讀 2005

過載只與函式的引數有關,而與函式的返回型別無關

int 形參--------

實參:0

、char

、short int

double 形參---------

實參:float

、double

用省略號

…表示,即函式可以有任意個任意型別的引數。如,

int printf(const char *format, …);

在乙個函式中,可指定多個(甚至全部)預設引數,但

所有預設引數必須出現在非預設引數的右部

,不能交叉指定

不能同時在函式的原型宣告和函式定義中定義預設引數。

int  b(int x=3);      //宣告b(int)預設值x=3

int  b(int x=3) //錯:不能再次定義

x=3

區域性變數稱為自動變數,這就與使用可選關鍵字a u t o定義區域性變數這一作法保持一致。

釋放乙個物件時,系統先調析構函式,然後**物件所佔的記憶體。

如delete str1;  //①str1.~string()②**記憶體

析構物件的順序與構造的順序相反。

ø若類中沒有顯式定義建構函式,在建立物件時,系統只分配記憶體,而不執行初始化工作,物件的各個資料將是隨機值。此時若對物件的資料進行操作,將導致結果錯誤!(預設的建構函式)

ø若類中沒有顯式定義析構函式,系統會生成乙個預設的析構函式;但預設的析構函式只**物件所占有的空間,並不**通過建構函式動態分配的記憶體(記憶體洩漏!)(後講!)

乙個類有且只有乙個析構函式。

動態儲存(new與delete)

new  àmalloc(sizeof( ));

deleteàfree( );

1

.優越性:

①new自動計算要分配的空間(根據資料型別)

②自動返回正確的指標型別,不必對返回指標進行型別轉換

③可以用new將分配的物件初始化

string(const string & rs); //定義拷貝建構函式   當類內部需要動態分配空間時

建構函式和析構函式是一種特殊的成員函式,其個性:

①都沒有返回型別,即 在定義時不需指出型別

②建構函式可以有預設引數,但要注意避免二義性

③建構函式可過載,但析構函式不可過載(唯一性)

④建構函式不可顯式呼叫,但析構函式可以

⑤當建立(定義)物件時,系統自動呼叫建構函式;當刪除物件時,系統自動地呼叫析構函式(c++

新特點:提供了自動**和顯式**兩種記憶體管理方式)

⑥都不能被繼承

⑦析構函式可以是虛的(

virtual

),但建構函式不行

知識點回顧

回顧 簡介 python 安裝 python3.8.5 why?python解釋型語言,安裝python3 直譯器 lib pip命令 pip list pip install x pip uninstall 解除安裝 pip install 版本號 pip freeze requiremente....

知識點回顧

方法 變數作用域 方法過載 ref 引用傳參,側重於在方法中一定要修改引數,傳入方法前必須賦值 out 側重於輸出,方法返回前 引數使用前 必須賦值 params 可變引數,只能修飾陣列型別,只能在方法列表的最後.如果沒有給可變引數賦值,那麼可變引數會自動初始化長度為0.方法遞迴 迴圈 方法自己呼叫...

hadoop 知識點回顧

hadoop 2.x 生態系統組成 hadoop 組成 namenode 元資料伺服器,屬於管理層,用於管理資料的儲存,主節點,儲存檔案的元資料,如檔名,檔案目錄結構,檔案屬性,生成時間,副本數,檔案許可權 及每個檔案的塊列表及塊所在datanode等。secondary namenode 輔助元資...