【发布时间】:2012-06-08 08:49:25
【问题描述】:
我最近修复了我的一个应用程序中的一个错误:问题是驻留在堆栈上的对象有一个未初始化的字段。
该对象有一个这种类型的类声明:
struct A{
int somefield, someotherfield;
A(): someotherfield(0) {}
}
在声明局部变量时(如函数中的A var;),somefield 未初始化,因此读取它会返回一个随机值。
我确信没有出现在构造函数初始化列表中的类的字段总是由合成的普通构造函数初始化(在 int 的情况下,为零值)。显然我错了。
那么关于隐式字段初始化的一般规则是什么?
【问题讨论】:
标签: c++ class constructor initialization stack