C 建構函式和析構函式總結

2021-10-03 04:45:26 字數 1206 閱讀 8132

建構函式是一類特殊的類成員函式,在建立物件時呼叫,建構函式的名稱和類名相同,但通過函式過載,可建立多個同名的建構函式,前提是每個函式的特徵標(也就是引數列表)都不一樣,而且,建構函式通常沒有宣告型別,因此,建構函式通常用於初始化類物件的成員,初始化應該與建構函式的引數列表匹配,舉個例子:

bozo(const char * fname, const char * lname);//constructor prototype ,假設乙個bozo類的建構函式原型
則可以使用它來建立初始化物件:

bozo bozetta = bozo("bozetta", "biggens");//primary form

bozo fufu("fufu", "0'dweeb");//short form

bozo *pc = new bozo("popo", "le peu");//dynamic object

如果編譯器支援c++11,則可以使用列表初始化:

bozo  bozetta = ;

bozo fufu;

如果建構函式只有乙個引數,則將物件初始化為乙個引數的型別相同的值時,該建構函式將被呼叫,例如,假如有乙個建構函式原型:

cout << trip;
則可以使用下面的任何一種形式來初始化物件:

bozo dribble = bozo(4);//primary form 

bozo roon(66);//secondary form

bozo tubby = 32;//special form for one-argument constructors

不過其實,這第三個式演示式新內容,在後面會詳細介紹一種關閉這種特性的方式,因為它可能會造成一些不必要的麻煩。

(注意:接受乙個引數的建構函式允許使用賦值語法將物件初始化為乙個值)

預設建構函式式是沒有引數的,因此如果建立物件時沒有顯式的初始化,則將呼叫預設建構函式,如果程式中沒有提供任何建構函式,則編譯器會為程式提供乙個預設建構函式;否則,必須自己提供預設函式。

bozo();

bistro(const char * s = "chez zero");

如果建構函式使用了new,則必須提供使用delete的析構函式。

C 建構函式和析構函式

1.建構函式是類的一種特殊方法,每次建立類的例項都會呼叫它。在建立乙個類的例項時,建構函式就像乙個方法一樣被呼叫,但不返回值。語法格式 訪問修飾符 類名 特性 1 其名字必須與類名相同,例如 public class myclass 2 不能被直接呼叫,必須通過new運算子來 呼叫。publiccl...

C 建構函式和析構函式

建構函式 class rectangel rectangel int l,int w 這是帶引數的建構函式,建構函式都是沒有返回值,並且和該類同名 int area 這是另一種形式的內聯函式,把宣告和定義寫在一起的也是內聯函式 private int length int width 析構函式 cl...

c 建構函式和析構函式

1.c 的建構函式有預設建構函式,一般的建構函式,賦值建構函式,拷貝建構函式 複製建構函式 強制型別轉化建構函式。2.如果沒有定義建構函式和析構函式,則c 編譯器會按照 位拷貝 的方式提供預設的建構函式 不初始化 預設的賦值建構函式 淺賦值 預設的拷貝建構函式 淺拷貝 預設的析構函式。位拷貝要小心指...