2013-03-01 84 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

没有,空的构造是一样的默认构造函数,如果你不初始化任何成员变量里面。