建構函式和析構函式

2021-08-08 10:15:26 字數 1137 閱讀 7207

1、建構函式

c++中的類可以定義與類名相同的特殊成員函式,這種與類名相同的成員函式叫做建構函式。建構函式用來對類的成員變數進行初始化,沒有返回值,建構函式在定義物件的時候自動呼叫,一般情況下,不需要手動呼叫。

class test..

test()                    // 無參構造

建構函式可以被過載

test(int a, int b)      //有參構造

在定義物件的時候,會自動呼叫建構函式,如果沒有其他操作會自動呼叫無參建構函式。

// 1、直接定義物件:括號法

test t1; // 呼叫無參建構函式

test t2(10); // 呼叫1個引數的建構函式

test t3(10,20); // 呼叫2個引數的建構函式

// 2、等號的方式: 只能呼叫乙個引數的建構函式,構造函式引數型別和等號右邊資料型別一致

test t4 = 10; // 呼叫1個引數的建構函式

test t5 = (10,20); // 呼叫1個引數的建構函式,這是調的引數是20,(10,20)是乙個逗號運算,結果是20。

test t6 = "asdsad";

test t7 = t4;//這裡的引數是乙個物件,這是乙個拷貝構造,這裡就不多說了後面會講。

// 3、手動呼叫建構函式

test t8 = test();

test t9 = test(10);

test t10 = test(10,20);

2、析構函式

c++中的類可以定義乙個特殊的成員函式清理物件,這個特殊的成員函式叫做析構函式。析構函式沒有返回值、沒有引數、系統自動呼叫,在物件被銷毀前會自動呼叫物件的析構函式。

語法:在建構函式前加乙個~。

test5

()~test5

()

析構函式的乙個用途:

可以自動釋放掉malloc出來的空間;

test5_2()

~test5_2()

}

建構函式和析構函式

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

析構函式和建構函式

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

建構函式和析構函式

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