如果我們要使某個類不具備拷貝的功能,可寫一個基類(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構造函數不能訪問