建構函式和析構函式

2021-10-17 15:16:33 字數 969 閱讀 8391

/*

建構函式:

特點:1.無返回值

2.通常情況下是pubilc屬性

3.呼叫不需要自己呼叫,構建物件的時候呼叫

4.函式名和類名一樣

分為:1.預設建構函式

2.普通建構函式

3.拷貝建構函式

析構函式:

特點:1.無參

2.無返回值

3.函式名: ~類名() {}

4.物件死亡的時候被呼叫

*/#include

#include

#include

using

namespace std;

class

girlfriend

void

print()

;/*也可以如此代替: 避免使用this指標

girlfriend(string name,int age) : name(name),age(age)

*///函式過載

girlfriend()

;//特殊的建構函式

//什麼時候析構函式需要手動釋放

//當資料成員申請記憶體的時候

~girlfriend()

protected

: string name;

int age;};

void girlfriend::

print()

class

mystring

void

print()

protected

:char

*str;};

intmain()

//大括號內的函式執行完後,執行六次(因為有六個物件)析構函式 ,new出來的物件必須手動釋放,才能死亡

system

("pause");

return0;

}

建構函式和析構函式

建構函式沒有返回值,不能被顯示的呼叫。它是在定義物件時由系統自動執行的,而且只執行一次。如果沒有定義建構函式,系統會自動生成乙個建構函式,只是這個建構函式的函式體是空,沒有引數,也不執行任何初始化的操作。帶引數的建構函式 有一種簡練,方便的寫法 建構函式的引數初始化表 box int h,int w...

析構函式和建構函式

每個物件生成的時候都要完成物件的初始化,如設定屬性的初始值。c 中規定每個類都有乙個初始值,如果沒有,系統會產生乙個預設的建構函式。這個建構函式沒有任何引數,不做任何額外的工作。但往往我們會自己寫乙個建構函式,用來進行特殊的初始化工作。這樣的話,編譯器就不會再為其生成預設的建構函式。class 類名...

建構函式和析構函式

stock hot 因為資料部分的訪問狀態是私有的,程式不能訪問資料成員。建立stock的建構函式,由於需要為stock提供3個值,因此應為建構函式提供3個引數值,程式設計師可能指向設定company成員,而其他的設定為0 使用預設引數完成 宣告如下 stock const char co,int ...