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

Nay*_*iya 2 c++ c++11

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

Class A{int m;}

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

Mik*_*our 9

它在C++ 11中与在C++ 03中一样.

第一个是默认初始化,保留m未初始化.

第二个是价值初始化,初始化m为零.

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