ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

コピーできないようにする

Effective C++ 第2章6項
あるクラスのオブジェクトをコピーできないようにするには、コピーコンストラクタとコピー代入演算子をprivateにしてしまえばよい。

class Test {
private:
    Test(const Test&);
    Test& operator=(const Test&);
};

宣言だけしておいて定義を書かないようにしておけば、フレンド関数や他のメンバ関数がコピーするコードを書いてしまったとしてもリンク時にエラーとなる。