如果我们要使某个类不具备拷贝的功能,可写一个基类(base classes),然后将copy构造函数声明为private且不去实现它。
具体实现如下:
class A { public: A(){} private: A(const A&);//copy构造函数为private且不实现它 A& operator=(const A&); }; class B : public A{ public: B(){} ~B(){} }; void main() { A a ; A a1(a); //error A a2 = a; //error B b; B b1(b); //error B b2 = b; //error return; }
所有错误的提示都是copy构造函数不能访问