C++实现时有时会希望有些类只保持一份独一无二的实例,因此要在设计上禁止拷贝构造和赋值。
muduo里陈硕大神就经常这样用,不过实现也很简单:
#include <iostream> class NoCopyable{ protected: NoCopyable(){ } virtual ~NoCopyable(){ } private: NoCopyable(const NoCopyable&); const NoCopyable& operator=(const NoCopyable&); }; class A : private NoCopyable{ }; int main(){ A a; A b; a = b; }
可以自己测试下,
原文:http://blog.csdn.net/boyxiaolong/article/details/22466071