c++ - 是否存在保证 int 成员为零初始化的情况?
问题描述
我已经阅读了多个讨论和 C++ 参考文章,但我仍然不确定。
考虑一下:
class Foo
{
int m;
};
m
在任何这些情况下都保证为零?
一个)
auto foo = new Foo;
二)
auto foo = new Foo();
C)
auto foo = new Foo{};
解决方案
是的,在 (B) 和 (C) 中,它将为零。在 (A) 中它是未初始化的。
如果您将自定义默认构造函数添加到Foo
(除非您=default
在类主体中添加),那么所有 3 种情况下的行为都是相同的:m
只有当您显式初始化它时才会被初始化。
推荐阅读
- coq - 在 Coq 的大于命题中使用等价定理
- android - 如何为谷歌助手使用带有自定义 DialogFlow 操作的 android deeplink?
- c++ - 如何创建指向继承类对象的指针数组
- flutter - 依赖规范必须是字符串或映射
- python - 在 python unittest 中模拟选择性文件写入
- python - 在 Django 中保存调整后的表单请求数据
- python - 根据字典的值造句
- laravel - Laravel 上重载的间接修改 - 关系
- python - 如何获得熊猫数据框或系列图中使用的标准颜色?
- java - Hibernate 从缓存中返回错误的列表,即使预期的列表与缓存的列表不同