構造 析構函式

2021-08-03 21:03:59 字數 753 閱讀 6708

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.函式可以過載 使用者可以自行更改建構函式中的引數,以實現自定義的初始化形...