2013-03-01 137 views
0

我有關於默認和空的構造函數混淆。空構造函數是否也自動初始化類變量?這意味着如果我使用空構造函數而不是默認構造函數,那麼是否也會自動初始化類成員變量?例如,如果使用下面的代碼,整數指針是否被初始化爲NULL?請確認C++空的構造函數和成員初始化

// .h文件中

Class Test {  
public: 
    Test(); 
    ~Test(); 

    int *p; 
} 

// .cpp文件

Test::Test() 
{ 
    // do something.. 
} 
+2

不,它不會自動初始化成員變量, – sgarizvi 2013-03-01 05:31:27

+0

如果在構造函數的初始化程序列表中沒有明確這樣做,則會初始化一些成員類型。有些不是。指針不是。這與通過「類型名稱」在函數中創建變量相同。 – chris 2013-03-01 05:32:27

+0

既不是默認的構造函數,也不將'p'初始化爲NULL。 – Pubby 2013-03-01 05:33:37

回答

3

沒有,空的構造是一樣的默認構造函數,如果你不初始化任何成員變量裏面。