e09不能在構造/析構函式中呼叫虛函式
類名()=default;
//隱式宣告為內聯函式,在類外定義時使用default則不是內聯函式cp449
類名(給定實參):
成員1(實參1),…{}
1.最好按照宣告次序進行初始化ep29,cp259
2.效率高於函式體拷貝初始化
3.delegating constructor(委託建構函式)cp261
4.converting constructor**換建構函式)隱式轉換為該型別
例如只接收1個實參的建構函式
string a="hi";
/*combine函式需要1個data物件
編譯器用a隱式建立了data物件*/
item.combine(a);
/*編譯器只會隱式執行1次類型別的轉換 cp264
"hi"需要首先轉換成string,再轉換成data物件
所以此句錯誤*/
item.combine("hi");
5.繼承建構函式cp557
class
b:public
a;
使編譯器產生下列等價**
b(…):a(…){}//派生類的新成員被預設初始化
建構函式 析構函式 虛析構函式
說析構函式之前,先說下建構函式。建構函式用來完成對物件的一系列初始化操作,主要作用有 1.給建立的物件建立乙個識別符號 2.為物件資料成員開闢記憶體空間 3.完成物件資料成員的初始化 當並未顯示的定義建構函式時,會生成乙個預設的建構函式,預設建構函式不能完成物件資料成員的初始化,只能給物件建立一識別...
建構函式 析構函式
是在物件被建立時自動呼叫的函式,將物件初始化為乙個特定的狀態 建構函式的形式 c 11中可以用clock default 來生成預設建構函式 是指類的物件在建立的時候,能使用已有的物件之間初始化它。或者是在類的物件在作為函式形參的時候,或者類的物件在作為函式返回值的時候 作為複製的機制需要自動拷貝型...
析構函式 建構函式
建構函式 一般用於物件的初始化 函式原型 例宣告乙個cperson類 成員變數即成員方法的宣告暫且不加,下同 則其預設生成建構函式原型為 cperson 即必須與類名相同 建構函式特點及使用法則 特點 1.建構函式無返回值 2.函式可以過載 使用者可以自行更改建構函式中的引數,以實現自定義的初始化形...