C++中的默认结构初始化

cri*_*ell 7 c++ constructor default initialization

假设我有一个看起来像这样的结构(一个POD):

struct Foo
{
  int i;
  double d;
};
Run Code Online (Sandbox Code Playgroud)

以下两行之间有什么区别:

Foo* f1 = new Foo;
Foo* f2 = new Foo();
Run Code Online (Sandbox Code Playgroud)

Mik*_*our 13

第一个是未初始化的值; 第二个将它们初始化为零.这仅适用于没有构造函数的POD类型.

  • 是的,这是唯一的区别. (5认同)