預設建構函式

2021-07-10 03:24:57 字數 417 閱讀 1502

如果定義了其他建構函式,最好也提供乙個預設建構函式(不帶引數或帶預設引數的建構函式)。

#include#include #include using namespace std;

class nodefault;

struct a;

struct b;

nodefault b_member; //錯誤:沒有合適的預設建構函式

};int main()

注意:用預設建構函式宣告物件時,應該如下:

nodefault my_mem;
若按下面是錯誤的:

nodefault my_mem();  //錯誤:宣告了乙個函式而不是物件

預設建構函式和合成預設建構函式

當我們沒有為類中的物件提供初始值,此時就會執行預設初始化,類會通過乙個特殊的建構函式來控制預設初始化過程,這個函式叫做預設建構函式,這個函式並不需要任何的實參,但是如果我們的類沒有顯式地定義建構函式,那麼編譯器就會為我們隱式地定義乙個預設建構函式 只要沒有顯式定義建構函式,編譯器就會提供預設建構函式...

預設建構函式

只要定義乙個物件時沒有提供初始化式,就使用預設建構函式。為所有形參提供預設實參的建構函式也定義了預設建構函式。乙個類哪怕只定義了乙個建構函式,編譯器也不會再生成預設建構函式。這條規則的根據是,如果乙個類在某種情況下需要控制物件初始化,則該類很可能在所有情況下都需要控制。合成的預設建構函式 synth...

預設建構函式

原諒我是個菜鳥,總在些小地方不經意出錯。include using namespace std class x x x private int a int main 你是否看得出 出錯了呢?接下來讓我們編譯看看 constructfunc.cpp in function int main const...