C 建構函式和析構函式什麼情況下會用

2022-07-20 16:42:11 字數 556 閱讀 6067

析構函式:

1. 物件生命週期結束,被銷毀時;

2. delete 指向物件的指標時;

3. delete 指向基類物件的指標時,其析構函式是虛函式;

4. 在巢狀關係中,物件a是物件b的成員,當物件b執行析構函式時,物件a的析構函式也會被呼叫;

建構函式:

1.  在宣告乙個普通物件的時候會呼叫建構函式

2.  如果只是宣告乙個指標物件,則不會執行建構函式;

3.  宣告了乙個指標物件,並為指標物件分配空間才會執行建構函式。

4.  在建立臨時物件的過程中會呼叫建構函式,eg:

1

class

a4 a(int _x)

5 a operator+(a&c);

6private:7

intx;8};

9 a a::operator+(a&c)

10

在這**中,return 語句中的 a(x+c.x)是建立乙個臨時物件 ,它沒有物件名,是乙個無名物件。return 語句將此臨時物件作為函式返回值。

析構函式什麼情況下要定義為虛函式

1.第一段 include using namespace std class clxbase clxbase void dosomething class clxderived public clxbase clxderived void dosomething int main 執行結果 do ...

什麼情況下,類的析構函式宣告為虛函式

include using namespace std class clxbase clxbase void dosomething class clxderived public clxbase clxderived void dosomething int main 執行結果 do someth...

析構函式在什麼情況下應該宣告為虛函式

如標題所言,乙個c 物件的析構函式,在什麼情況下,應該被宣告為乙個虛函式呢?看到這一標題,我興趣大增。首先,虛析構函式是什麼意思呢?well,你想想,乙個類的虛方法是什麼意思,就能明白虛析構函式是怎麼一回事兒了。如果乙個方法被宣告為虛方法,則當呼叫這個方法時,會呼叫具體實現此方法的物件方法,也稱動態...