c++

Uncopyable base class

Posted by ysd on June 25, 2016

将copy构造函数声明为private并不绝对安全,因为成员函数和友元函数还是可以调用;如果不实现它们,对其调用将获得一个链接错误。

一个阻止copying动作设计的base class

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

为阻止某个对象被拷贝,令其继承Uncopyable.
这样将链接错误移至编译期。