防止对象被复制以及赋值

把复制构造函数以及赋值构造函数声明为private,并且不实现只是声明,可以防止复制以及赋值,不实现是防止友元函数以及成员函数调用。

对于不可复制以及赋值的对象,把错误可以转到编译期而不是链接期

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

class HomeForSale:private Uncopy
{};

以上的HomeForSale是不会被复制以及赋值,如果成员函数或者友元函数调用复制或者赋值函数,那么在编译期就会报错,而不是等到链接。

posted on 2015-11-22 10:55  菜鸟基地  阅读(298)  评论(0)    收藏  举报

导航