C 建構函式與析構函式

2021-08-02 05:17:36 字數 1079 閱讀 1676

c++規定,每個類必須有預設的建構函式,沒有建構函式就不能建立物件。

若沒有提供任何建構函式,那麼c++提供自動提供乙個預設的建構函式,該預設建構函式是乙個沒有引數的建構函式,它僅僅負責建立物件而不做任何賦值操作。

只要類中提供了任意乙個建構函式,那麼c++就不再自動提供預設建構函式。

類物件的定義和變數的定義類似,使用預設建構函式建立物件的時候,如果建立的是靜態或者是全域性物件,則物件的位模式全部為0,否則將會是隨機的。

1、宣告和定義

建構函式和類名相同,沒有返回值,沒有宣告型別。

程式宣告物件時,將自動呼叫建構函式。

定義如下:

stock ( const

string & co, long n = 0, double pr = 0.0 );

建構函式的引數表示的不是類成員,而是賦給類成員的值,因此,引數名不能與類成員相同。一般類成員定義是字尾 「_」。

2、使用建構函式

顯式呼叫:

stock food = stock
隱式呼叫:

stock food
無法使用物件來呼叫建構函式。

3、預設建構函式

建立物件時,未顯式初始化時,將呼叫預設建構函式。

預設建構函式只建立物件,不初始化其成員。

當且僅當沒有任何建構函式時,編譯器才會提供預設建構函式。因此,為類定義了建構函式後,就必須定義其預設建構函式。

兩種方法:

1)、給已有建構函式的所有引數提供預設值

stock ( const

string & co = 「error」, long n = 0, double pr = 0.0 );

2)、通過函式過載,定義乙個沒有引數的建構函式

stock( );
隱式呼叫建構函式時,不要使用圓括號

4、析構函式

析構函式沒有引數,如:

~stock( );

c 建構函式與析構函式

一 建構函式 c 提供建構函式來處理物件的初始化,建構函式是一種特殊的成員函式,與其他的成員函式不同,不需要使用者來呼叫他,而是在建立物件時自動執行。它的特點是 函式名和類名相同,沒有返回值,可以過載 如果程式中未宣告,則系統自動產生出乙個預設的建構函式,預設的建構函式時不帶引數的。比如 stude...

C 建構函式與析構函式

建構函式 對於c 的建構函式,暫且將其分為以下幾類 1.預設建構函式 2.隱士轉換建構函式 3.拷貝建構函式 4.其它建構函式 1.預設建構函式表示沒有任何引數的建構函式,當自定義任何建構函式以後,將不再自動建立預設建構函式,當然,預設建構函式啥也不幹,程式設計師關心係數頓時大跌。關於預設建構函式還...

c 建構函式與析構函式

1.建構函式 建構函式 是一種特殊的方法。主要用來在建立物件時初始化物件,即為物件成員變數賦初始值,總與new運算子一起使用在建立物件的語句中。如果建立乙個類你沒有寫任何建構函式,則系統會自動生成預設的無參建構函式,函式為空,什麼都不做只要寫了乙個其他的某一種建構函式,系統就不會再自動生成這樣乙個預...