This question already has answers here:
What is the default value for C++ class members
(2个答案)
5年前关闭。
快速入门的问题:
我是否具有来初始化简单的类成员变量,还是在任何情况下都保证为它们分配了默认值?
例:
谢谢!
(2个答案)
5年前关闭。
快速入门的问题:
我是否具有来初始化简单的类成员变量,还是在任何情况下都保证为它们分配了默认值?
例:
class Foo {
int i;
// is i==0 or do I need the following line for that?
Foo() : i(0) {}
};
谢谢!
最佳答案
不,您没有,没有来初始化成员变量。但是,如果您不初始化它们,请不要假定它们将具有任何值。
如果创建测试程序并在调试器中检查如何初始化值,则可能会看到它们初始化为零,但这不能保证。这些值将初始化为该位置堆栈中内存中的任何内容。
不保证它们会被分配任何值。如果有成员对象,则将为它们调用默认构造函数,但对于POD类型,则没有默认初始化。
即使您不必这样做,也最好对类的所有成员进行初始化(以避免难于发现错误并明确显示初始化/构造函数调用)。
关于c++ - 我必须初始化简单的类成员变量吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3053057/