一个对象的两种初始化之间有区别吗?
Object obj(constructor_arguments);或
Object obj = Object(constructor_arguments);请注意,第二次初始化并不是new操作符的指针。它应该是一个非堆变量。
在GCC中,编译和工作都很好,我想知道这是否真的有什么不同,或者这两个语句在语义上是相同的。
发布于 2013-05-29 04:20:13
是的有。第一个是直接初始化的语法,第二个是复制初始化。
从理论上讲,第二个函数调用复制构造函数,但这需要进行优化。
https://stackoverflow.com/questions/16800757
复制相似问题