構文
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;
};
 
 
コメントを残す