我的问题与这个和其他几个类似的问题有些重叠。它们有一些很好的答案,但我已经阅读了它们,仍然感到困惑,请不要认为这个问题是重复的。
因此,我有以下代码:
因此,我有以下代码:
class A {
public: int _a;
}
void main()
{
A inst1;
A* inst2 = new A;
A* inst3 = new A();
}
inst1
和inst2
中的_a
未被初始化,而在inst3
中被初始化为0
。哪个初始化被调用了,为什么代码会按照这种方式工作?请注意我手头没有C++ 03标准,但我有最新的C++ 11草案(尽管我正在按照'03标准编程),因此引用'03标准或参考'11是非常受欢迎的。
P.S. 此研究背后的原始任务是正确地将任意模板类型T
的成员零初始化。