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                 
posted @ 2014-08-07 20:18  zhahao  阅读(728)  评论(0编辑  收藏  举报