两个基本的有关问题

两个基本的问题
为什么
1 可以阻止类的一个对象赋给另一个对象,只要把赋值运算符声明为这个类的private成员即可达到此目的
2 可以阻止类对象的复制,只需要把这个类重载的赋值运算符和拷贝函数声明为private
新手 越详细越好 谢谢

------解决方案--------------------
class Test{....};
Test obj1,obj2;

Test obj3=obj1;编译器为之调用拷贝构造函数,如果拷贝构造函数的访问控制为private那么在编译器阶段就会被拒绝。(不可访问拷贝构造函数)同理 obj2=obj1;调用operator=(const Test&);理由同前
------解决方案--------------------
赋值 和 拷贝就也就是在类外可以调用的,因为为public
你声明为private:在类外就不能访问了
------解决方案--------------------
因为你的对象 在外面复制 和拷贝时是调用这两个函数 的!因为是在类外可以调用public函数!所以可以用这两个函数!但是你声明为private的话 也就是在类外不能访问 这两函数 了
------解决方案--------------------
参考:
C++类中的4个特殊函数 - 缺省构造函数、拷贝构造函数、拷贝赋值操作符和析构函数