コピーコンストラクタとコピー代入演算子オーバーロードの構文

構文

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;
};

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です