類的建構函式和析構函式

2021-05-21 20:13:39 字數 909 閱讀 7817

1. 把物件的初始化工作放在建構函式中,把清除工作放在析構函式中。當物件被建立時,建構函式被自動執行。當物件消亡時,析構函式被自動執行。這下就不用擔心忘了物件的初始化和清除工作。

2. 建構函式、析構函式與類同名,由於析構函式的目的與建構函式的相反,就加字首『~』以示區別。

3. 建構函式與析構函式都沒有返回值型別,這與返回值型別為 void 的函式不同。建構函式與析構函式的使命非常明確,就象出生與死亡,光溜溜地來光溜溜地去。如果它們有返回值型別,那麼編譯器將不知所措。為了防止節外生枝,乾脆規定沒有返回值型別。

4. 建構函式和析構函式只是為public.

建構函式

1. 建構函式最重要的作用是建立物件本身。

2. c++規定,每個類必須有乙個建構函式,沒有建構函式,就不能建立任何物件。

3. c++又規定,如果乙個類沒有提供任何的建構函式,則c++提供乙個預設的建構函式(由c++編譯器提供),這個預設的建構函式是乙個不帶引數的建構函式,它只負責建立物件,而不做任何的初始化工作。

4. 只要乙個類定義了乙個建構函式,不管這個建構函式是否是帶引數的建構函式,c++就不再提供預設的建構函式。也就是說,如果為乙個類定義了乙個帶引數的建構函式,還想要無引數的建構函式,則必須自己定義。  

析構函式

1. 當乙個物件生命週期結束時,其所占有的記憶體空間就要被**,這個工作就由析構函式來完成。

2. 析構函式是「反向」的建構函式,析構函式不允許有返回值,更重要的是析構函式不允許帶引數,並且乙個類中只能有乙個析構函式。

3. 析構函式的作用正好與建構函式相反,物件超出其作用範圍,對應的記憶體空間被系統收回或被程式用delete刪除時,析構函式被呼叫。

4. 根據析構函式的這種特點,我們可以在建構函式中初始化物件的某些成員變數,給其分配記憶體空間(堆記憶體),在析構函式中釋放物件執行期間所申請的資源。

類 建構函式和析構函式

一.類 類定義的變數就是物件 1.建構函式 只有 建立物件的時候系統自動呼叫的函式 初始化物件 1 建構函式名與類名相同 2 建構函式沒有返回值 3 建構函式可以過載 注意 關於建構函式 1 如果建構函式被呼叫了,則一定有乙個新物件被建立了 2 如果有乙個新物件被建立,則一定有乙個建構函式被呼叫了 ...

類的建構函式和析構函式

類的資料成員是私有的,所以不能使用常規的賦值方法,像結構體那種的。一般來講。最好在建立物件的同時,對它進行初始化。例如 stock gift gift.buy 10,22.22 這種情況下,company 沒被賦值。程式宣告物件時,自動呼叫建構函式。一定不能將類成員名稱用作建構函式的引數名。建構函式...

類的建構函式和析構函式

1.類建構函式和析構函式的特點 2.類建構函式 專門用於構造新物件,將值賦予它們的資料成員。建構函式是一種特殊的類成員函式,在建立類物件時被呼叫。建構函式的名稱和類名相同,但通過函式過載,可以建立多個重名的建構函式,條件是每個函式的引數列表都不同。1 預設建構函式 每個類必須有乙個建構函式,若未顯示...