C 中的建構函式VS析構函式

2021-09-14 00:55:17 字數 433 閱讀 1913

c++初始化類成員時,是按照宣告的順序初始化的,而不是按照出現在初始化列表中的順序!,見下面的例項:

class student1

// student1(int i): b(i), a(b){} 異常順序:發現a的值是0,b的值是2;說明初始化僅僅對b有效,對a沒有起到初始化的作用

student1(int i): a(i), b(a){} // 正常順序:a = b = 2

// 預設建構函式

student1()

// 拷貝建構函式

student1(const student1& t1)

};student1 a(2); //進入預設建構函式

a.fprint(); //輸出前面初始化的結果

C 建構函式 析構函式 虛析構函式

一般地,建立物件和刪除物件時,父類建構函式 子類建構函式 子類析構函式 父類析構函式。特例 如果用new建立了乙個物件,並將父類的指標指向這個子類的物件,那麼用delete撤銷物件時,系統只執行基類的析構函式,而不執行派生類的析構函式。如果希望按照子類析構函式 父類析構函式的順序執行,那麼應該將基類...

C 建構函式,析構函式

一 建構函式 在建立類的物件時自動呼叫的乙個函式,主要是為物件本身做初始化工作 沒有返回值,名字和類的名字相同,因為是在建立物件時候自動呼叫的,所以必須型別為public的,可以帶引數,可以有多個 如果類中沒有建構函式,在下面三種情況下,會自動的新增預設的建構函式 1.如果類中有虛函式,或者類中有虛...

C 建構函式 析構函式

在學習類的成員方法時,遇到了兩個函式。簡單介紹一下 一 建構函式 建構函式是類中比較特殊的成員函式,它也是一種方法。主要用來為物件分配儲存空間,完成初始化操作,例如給類的成員變數賦值等。一般來說,建構函式一旦開始執行,那麼物件的生命週期就開始了,最終它將以析構函式結束。如果乙個類含有建構函式,在例項...