C++空的构造函数和成员初始化
问题描述:
我有关于默认和空的构造函数混淆。空构造函数是否也自动初始化类变量?这意味着如果我使用空构造函数而不是默认构造函数,那么是否也会自动初始化类成员变量?例如,如果使用下面的代码,整数指针是否被初始化为NULL?请确认C++空的构造函数和成员初始化
// .h文件中
Class Test {
public:
Test();
~Test();
int *p;
}
// .cpp文件
Test::Test()
{
// do something..
}
答
没有,空的构造是一样的默认构造函数,如果你不初始化任何成员变量里面。
不,它不会自动初始化成员变量, – sgarizvi 2013-03-01 05:31:27
如果在构造函数的初始化程序列表中没有明确这样做,则会初始化一些成员类型。有些不是。指针不是。这与通过“类型名称”在函数中创建变量相同。 – chris 2013-03-01 05:32:27
既不是默认的构造函数,也不将'p'初始化为NULL。 – Pubby 2013-03-01 05:33:37