首页 > 解决方案 > 是否存在保证 int 成员为零初始化的情况?

问题描述

我已经阅读了多个讨论和 C++ 参考文章,但我仍然不确定。

考虑一下:

class Foo
{
    int m;
};

m在任何这些情况下都保证为零?

标签: c++initializationc++14

解决方案


是的,在 (B) 和 (C) 中,它将为零。在 (A) 中它是未初始化的。

如果您将自定义默认构造函数添加到Foo(除非您=default在类主体中添加),那么所有 3 种情况下的行为都是相同的:m只有当您显式初始化它时才会被初始化。


推荐阅读