6

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

Object obj(constructor_arguments);

或者

Object obj = Object(constructor_arguments);

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

在 GCC 中,编译和工作都很好,我想知道是否真的有任何区别,或者两个语句在语义上是否相同。

4

1 回答 1

11

就在这里。第一个是直接初始化的语法,第二个是复制初始化。

理论上,第二个调用复制构造函数,但这需要优化。

于 2013-05-28T20:20:12.727 回答