那些车是合资车:〔九百里加急〕一个C++中对象的赋值的问题!!!

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/04 07:20:30
Type a ,c;
c=a;
a,c为定义的type类的对象
问:
c=a;是对的么?
执行的具体过程是什么?
假设type的私有成员有2个:x和y;
是不是会执行
c.x=a.x;
c.y=a.y;
如果执行这两条语句,那是不是破坏了累的封装性,因为这两条语句对私有成员赋值?
很多书上都没提这个问题.

我个人认为,“私有”是相对于类这个级别来说的,而不是类的实例这个级别,所以同一个类的各实例之间没有私有限制。

我觉得并没有破坏类的封装性,c.x=a.x;c的x并没有被其他的函数调用,还是通过c中某成员函数调用的.

c=a; 其实是调用类中的拷贝构造函数,而并没有破坏类的封装性