c ++中未初始化的类成员会发生什么?如果我必须这样做,我该怎么办呢?
#include <iostream>
using namespace std;
class Foo {
int attr1, attr2;
public:
Foo ();
Foo::Foo () { attr1 = 5; }
Foo myThing();
答案 0 :(得分:4)
c ++中未初始化的类成员会发生什么?
它们是默认初始化的,如果像int
这样的基本类型意味着它将具有不确定的值。
我应该怎样照顾?
你应该注意永远不要读取不确定的价值。
答案 1 :(得分:2)
它们是默认构造的。
对于嵌套类,这意味着它们必须具有可以不带参数调用的构造函数。
对于普通的旧数据成员(int
et.al。),这意味着他们只是像任何其他本地变量那样保持未初始化。