对象的2个初始化之间是否存在差异。
Object obj(constructor_arguments);
或
Object obj = Object(constructor_arguments);
请注意,第二次初始化不是指向new
运算符的指针。它旨在成为非堆变量。
在GCC中,编译和工作都很好,我想知道是否存在任何差异,或者两个语句在语义上是否相同。
答案 0 :(得分:11)
是的。第一种是直接初始化的语法,第二种是复制初始化。
理论上,第二个调用复制构造函数,但这可以进行优化。