在c ++中未初始化的类成员会发生什么?

时间:2017-09-01 15:14:31

标签: c++ class data-members

c ++中未初始化的类成员会发生什么?如果我必须这样做,我该怎么办呢?

#include <iostream> 
using namespace std;

class Foo {
    int attr1, attr2;   
public:
    Foo ();

Foo::Foo () {   attr1 = 5; }

Foo myThing(); 

2 个答案:

答案 0 :(得分:4)

  

c ++中未初始化的类成员会发生什么?

它们是默认初始化的,如果像int这样的基本类型意味着它将具有不确定的值。

  

我应该怎样照顾?

你应该注意永远不要读取不确定的价值。

答案 1 :(得分:2)

它们是默认构造的。

对于嵌套类,这意味着它们必须具有可以不带参数调用的构造函数。

对于普通的旧数据成员(int et.al。),这意味着他们只是像任何其他本地变量那样保持未初始化。