Effective C++ Item 62009年07月20日 14時25分43秒

  • コンパイラが自動生成する関数を呼べないようにするには、目的の関数を private で宣言する。実装は必要ない。

定義が無く宣言のみでも、呼ばれない関数なのでリンクするのには必要になる事は無い。


class Uncopyable{
    protected:
        Uncopyable(){}
        ~Uncopyable(){}
    private:
        Uncopyable(const Uncopyable&);
        Uncopyable& operator=(const Uncopyable&);
};

また、継承を用いることも出来る。

class Something: private Uncopyable{
};

前回次回