c++ - new 后括号的存在,在 C++11 中做任何不同

标签 c++ c++11

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

A 类{int m;}

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

最佳答案

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

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

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

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

关于c++ - new 后括号的存在,在 C++11 中做任何不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26249112/

相关文章:

c++ - 在 C++ 中是否有合法的方法来定义零大小的类型? <eom>

c++ - 自动检测基类的类型参数

c++ - 实现定义的缩小转换?

c++ - 具有由整数模板参数指定的参数数量的类方法

c++ - 在 C++ 中获取拉丁字符

C++ GUI 和控制台应用程序

c++ - 调用 avformat_write_header 函数后如何添加新流?

c# - 以纯 native 模式开始调试 C# 启动项目

c++ - ia 是数组时无法推断出 "auto ia2(ia)"

c++ - 递归地一次以英文形式打印每个数字的整数