コピーコンストラクタとコピー代入演算子の部分の知識が怪しいので復習。
class Test { public: Test(); // デフォルトコンストラクタ Test(const Test& a); // コピーコンストラクタ Test& operator=(const Test& a); // コピー代入演算子 }; Test a; // デフォルトコンストラクタが使われる Test b(a); // コピーコンストラクタが使われる a = b; // コピー代入演算子が使われる Test c = b; // コピーコンストラクタが使われる
新しいオブジェクトを定義するときにコンストラクタが呼び出されるということを覚えておけば区別しやすい。