首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++11:测试*测试=新测试和测试*测试=新测试()之间的差异;

C++11:测试*测试=新测试和测试*测试=新测试()之间的差异;
EN

Stack Overflow用户
提问于 2014-12-30 01:14:23
回答 1查看 146关注 0票数 1

在C++11下,如果'Test‘是一个普通类,那么以下两个类之间是否有区别:

代码语言:javascript
运行
复制
Test* test = new Test;
//and
Test* test = new Test();

注意:这是Do the parentheses after the type name make a difference with new?再次提出的相同问题,因为旧线程位于C++11之前,而我想问一下c++11 stadard下是否存在差异。

这个问题的公认答案是:

  • 在C++1998中,有两种类型的初始化:
  • C++2003是第三种类型的初始化,值初始化被添加。

据我所知,C++11只有2个初始化、默认值和值。所以我想答案有点不同?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-30 02:16:43

C++11具有零初始化、默认初始化、值初始化(相应地是8.5/5/6/7 )、复制初始化(8.5/14)、直接初始化(8.5/15)和列表初始化(E 1108.5.4E 211)。

特别是关于new

5.3.4/15创建类型为T的对象的新表达式初始化该对象如下: -如果省略新的初始化器,则该对象为默认初始化(8.5);如果不执行初始化,则该对象具有不确定的值。 -否则,将根据8.5的初始化规则解释新的初始化程序,以进行直接初始化.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27698364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档