DOSEIの日記

技術メモ+日常ログ

C++ コピーコンストラクタ

コピーコンストラクタが呼ばれる例。

  • 値渡し引数
  • 値渡し戻り値
  • 初期化付き宣言

T 型を考え、コピーコンストラクタを T(T)、代入演算子T operator=(T) とする。

この場合

  T a; // デフォルトコンストラクタ
  T b = T(10); // コンストラクタ T(int)。その後コピーコンストラクタは通常呼ばれない。
  T c = a; // コピーコンストラクタ
  a = c; // コピー・代入・コピー

代入演算子T operator=(T&) の場合

  a = c; // 代入・コピー

代入演算子T& operator=(T&) の場合

  a = c; // 代入

C++FAQ: 20.07, 33.07