实现一个noncopyable

当声明一个类不允许复制时,可以将一个类的复制构造函数和赋值操作符声明为private,但是实际中,我们直接继续自boost::noncopyable类,就搞定了.那么我们如何自己实现一个noncopyable类?下面是代码:

class noncopyable
{
protected:
    noncopyable() = default;//声明为protected为了防止:noncopyable ncp

private:
    noncopyable(const noncopyable&) = delete;//使用delete
    noncopyable&operator=(const noncopyable&) = delete;
};
为了拒绝编译器自动提供的功能,所以保险的方法是将相应的函数声明为 private,而且不要给出实现.注意友元函数还是能够调用 private 函数的.

你可能感兴趣的:(黎宏伟)