c ++对象初始化和构造函数语义

时间:2013-05-28 20:19:03

标签: c++ object constructor

对象的2个初始化之间是否存在差异。

Object obj(constructor_arguments);

Object obj = Object(constructor_arguments);

请注意,第二次初始化不是指向new运算符的指针。它旨在成为非堆变量。

在GCC中,编译和工作都很好,我想知道是否存在任何差异,或者两个语句在语义上是否相同。

1 个答案:

答案 0 :(得分:11)

是的。第一种是直接初始化的语法,第二种是复制初始化。

理论上,第二个调用复制构造函数,但这可以进行优化。