c++ 中未初始化的 class 成员会怎样?

What happens to uninitialized class members in c++?

C++ 中未初始化的 class 成员会怎样?如果我必须这样做,我应该注意什么?

#include <iostream> 
using namespace std;

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

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

Foo myThing(); 

What happens to uninitialized class members in c++?

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

what should I take care of?

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

它们是默认构造的。

对于嵌套 类 这意味着它们必须有一个可以在没有参数的情况下调用的构造函数。

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