新的括号后存在,在C ++ 11中有所不同

时间:2014-10-08 04:14:40

标签: c++ c++11

请看下面的两个声明。这两种方法在 C ++ 11 中有什么不同?我查看了关于C ++ 03 here

的故事

Class A{int m;}

  1. A* a = new A
  2. A* a = new A();

1 个答案:

答案 0 :(得分:9)

在C ++ 11中与在C ++ 03中的相同。

第一个是 default-initialision ,让m保持未初始化状态。

第二个是值初始化,将m初始化为零。

如果该类具有用户提供的默认构造函数,那么两者都会做同样的事情,调用该构造函数。