#include <iostream>
using namespace std;
class UnCopyable{
protected:
UnCopyable(){}
~UnCopyable(){}
private:
UnCopyable(const UnCopyable&); // 利用访问权限private解决屏蔽默认构造函数问题
UnCopyable& operator=(const UnCopyable&); // 利用访问权限private解决屏幕“=”运算符问题
};
class HomeForSale : private UnCopyable{
public:
void test(){ cout << "MyClass" << endl; }
};
int main(){
HomeForSale mc1;
HomeForSale mc2;
mc1 = mc2; // Error: “UnCopyable::operator =”: 无法访问 private 成员(在“UnCopyable”类中声明)
HomeForSale mc3(mc1); // Error: “UnCopyable::UnCopyable”: 无法访问 private 成员(在“UnCopyable”类中声明)
system("pause");
return 0;
}
//当然你把private去了,编译就对了。