過載只與函式的引數有關,而與函式的返回型別無關
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 輔助元資...