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