建構函式和析構函式

2021-10-25 09:17:29 字數 689 閱讀 4723

在c++類中定義與類名相同的成員函式叫做建構函式;

建構函式可以帶參也可以無參,而且該函式沒有返回型別;

在一般情況下執行程式時編譯器會自動呼叫建構函式,特殊情況下需要人工呼叫。

下面是類中的無參建構函式:

class test 

}

帶參建構函式:

class test 

}

拷貝建構函式是一種特殊的建構函式,函式名與類名一致,它必須由乙個引數,該引數是本類的引用變數。

**示例:

class test 

test(test & t)

}int main()

系統會為btest分配了空間並把atest複製給btest。這說明相同型別的類物件由拷貝建構函式來完成彼此之間賦值。

在c++類中又可定義乙個特殊成員函式來清理物件,該函式叫做析構函式;

析構函式沒有任何返回型別也沒有任何引數;

析構函式在程式結束時由編譯器自動呼叫;

**示例:

class test 

}

建構函式用於初始化物件;

建構函式在物件建立時自動呼叫;

拷貝建構函式用於相同類物件賦值;

析構函式在程式結束時自動呼叫;

建構函式和析構函式

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

析構函式和建構函式

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

建構函式和析構函式

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