このコードフラグメントでは、実際にどのコンストラクターが呼び出されますか?
Vector v = getVector();
ベクターには、コピーコンストラクター、デフォルトコンストラクター、および代入演算子があります。
class Vector {
public:
...
Vector();
Vector(const Vector& other);
Vector& operator=(const Vector& other);
};
getVectorは値で戻ります。
Vector getVector();
コードはC++03標準を使用します。
コードフラグメントは、デフォルトコンストラクターを呼び出してから代入演算子を呼び出すことになっているように見えますが、この宣言はコピーコンストラクターを使用する別の形式であると思われます。どちらが正しい?