首页 > 代码库 > C++不可被拷贝类的实现

C++不可被拷贝类的实现

在C++中,类的拷贝主要是通过拷贝构造函数和赋值函数,还有就是为拷贝专门实现的成员方法。

拷贝构造函数和赋值函数在用户没有提供的情况下是由C++ 编译器自动生成的,是public成员,因此默认的C++类都有拷贝功能。

若让一个C++类不能被拷贝,可显式地声明类的拷贝构造函数和赋值函数为私有函数,从而达到该类不可被拷贝的目的。

下面提供一个简单的基类,任何从此类继承的派生类都不可被拷贝。

 1 /* 2 *任何继承该类的派生类都不能进行复制和拷贝 3 * 4 */ 5  6 class    NonCopyable 7 { 8     public: 9         NonCopyable(){}10         ~NonCopyable(){}11     private:12         NonCopyable(const NonCopyable &)13         const NonCopyable& operator=(const NonCopyable &);14 };15