C 建構函式

2021-09-26 23:07:46 字數 1049 閱讀 2303

每個類都分別定義了它的物件初始化的過程,類通過乙個或幾個特殊的成員函式來控制其物件的初始化過程,這些函式稱為建構函式

類通過乙個特殊的建構函式來控制預設初始化過程,這個函式叫做預設建構函式,一般情況下,是乙個沒有形參值的空函式。

如果我們沒有顯式地定義建構函式,編譯親就會為我們隱式地生成乙個預設建構函式,又稱為合成的預設建構函式

初始化規則:

需要我們注意的是:某些類不能依賴於合成的預設建構函式

在c++11新標準下,可以用=default來要求編譯器生成預設的建構函式。

定義建構函式時,既可以用初始化列表的方法,也可以用函式體進行成員賦值的方法。

有時我們可以忽略資料成員初始化和賦值的影響,但並非總能這樣

如果成員是const,引用,或者某種未提供預設建構函式的類型別,我們必須通過建構函式初始值列表來進行。所以建議使用建構函式初始值,且最好令建構函式初始值的順序與成員宣告的順序保持一致

c++11標準擴充套件了建構函式初始值的功能,乙個委託建構函式使用它所屬的類的其他建構函式執行自己的初始化過程,或者說它把自己的一些(或者全部)職責委託給了其他建構函式。

可以簡化了一些重複操作

class x 

// …

};//簡化後-----------------------------------------

class x

// …

};

但是注意不能生成委託環

即必須有乙個基本的建構函式,不能環環委託,否則編譯出錯

#include using namespace std;

class a

a(int ii):a("ok")

void show()

};int main()

C 建構函式 拷貝建構函式

建構函式 class base private int m var 建構函式無返回值型別,函式名和型別相同。拷貝建構函式傳遞引數為引用。1 class base2 7 拷貝建構函式 8 base base ref m var ref m var 9 11 private 12 intm var 13...

C 構造器(建構函式)

定義和作用 構造器是在構建類的 引用時 自動執行的方法。所以,每個類都必須至少要有乙個構造器。在訪問乙個類的時候,編譯器最先執行構造器中的 它與類同名,帶引數的構造器能夠獲取引數,但是與方法不同的是 構造器雖然也是一種 例項型別 即必須通過例項來進行呼叫,也可以稱之為引用型別 但是卻不能返回任何值 ...

C 建構函式

建構函式是一種特殊的成員函式,它主要用於為物件分配儲存空間,對資料成員進行初始化.1 建構函式的名字必須與類同名 2 建構函式沒有返回型別,它可以帶引數,也可以不帶引數 3 建構函式的主要作用是完成對類的初始化工作 4 在建立乙個類的新物件 使用new關鍵字 時,系統回自動呼叫給類的建構函式初始化新...