当声明一个类不允许复制时,可以将一个类的复制构造函数和赋值操作符声明为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 函数的.
本文介绍了一种通过声明复制构造函数和赋值操作符为private来禁止类被复制的方法,并提供了一个简单的noncopyable类实现示例。
738

被折叠的 条评论
为什么被折叠?



