Vector v = getVector();
Vector有复制构造函数,默认构造函数和赋值运算符:
class Vector { public: ... Vector(); Vector(const Vector& other); Vector& operator=(const Vector& other); };
getVector按值返回.
Vector getVector();
代码使用C 03标准.
代码片段看起来应该调用默认构造函数然后调用赋值运算符,但我怀疑这个声明是使用复制构造函数的另一种形式.哪个是对的?
根据getVector()的结构,可以优化副本,并且在函数内创建的对象与存储在v中的物理对象相同.