是否存在保证 int 成员被零初始化的情况?

Is there a case where an int-member is guaranteed to be zero-initialized?

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

考虑一下:

class Foo
{
    int m;
};

在这些情况下,m 是否保证为零?

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

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