-2

What happens to uninitialized class members in c++? If I have to do this, what should I take care of?

#include <iostream> 
using namespace std;

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

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

Foo myThing(); 
4

2 回答 2

4

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

它们是默认初始化的,在基本类型的情况下,这int意味着它将具有不确定的值。

我应该注意什么?

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

于 2017-09-01T15:17:37.650 回答
2

它们是默认构造的。

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

对于普通的旧数据成员(int等人),这意味着它们只是像任何其他局部变量一样保持未初始化。

于 2017-09-01T15:17:51.143 回答