構文
class class-name { public: class-name(const class-name& variable-name); // コピーコンストラクター class-name& operator=(const class-name& variable-name); // コピー代入演算子オーバーロード };
コピーコンストラクタは仮引数にconstと参照がついていることがポイント。
コピーコンストラクタとコピー代入演算子オーバーロードはセットで定義することが推奨される。
実装例
struct Hoge final { public: // デフォルトコンストラクタ(なくてもいい) Hoge() = default; // コピーコンストラクタ Hoge(const Hoge& other){ this->a = other.a; } // コピー代入演算子オーバーロード Hoge& operator=(const Hoge& other){ this->a = other.a; return *this; } int a; };
コメントを残す