新括号后的存在,使C++11中的任何不同

Existence of Parentheses after the new, make any different in C++11

本文关键字:任何不 C++11 存在 新括号      更新时间:2023-10-16

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

Class A{int m;}

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

它在C++11中和在C++03中是一样的。

第一个是默认初始化,使m未初始化。

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

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