C++拷贝构造函数的问题

已知Point类的拷贝构造函数:Point(Point&P){X=P.X;Y=P.Y;}并且在主函数中已经给对象A赋了初值,即PointA(1,2);(假设Point构造... 已知Point类的拷贝构造函数:Point(Point &P){X=P.X;Y=P.Y;} 并且在主函数中已经给对象A赋了初值,即Point A(1,2);(假设Point构造函数已经定义了),现在要给对象B初始化,用Point B(A);语句,我想问的是,此时调用的拷贝构造函数是A的成员函数还是B的,我觉得应该是B的,也就是说调用的这个拷贝构造函数是B的成员函数,但是为何在Point(Point &P){X=P.X;Y=P.Y;}里它可以直接访问A.X和A.Y呢?这两个数据应该是A私有的,求解。 展开
 我来答
理想之芽
2011-09-16 · TA获得超过212个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:80.8万
展开全部
调用的拷贝构造函数是Point的成员函数,不是A的,也不是B的,Point是类,A、B只是实例,私有是指类的私有,同一个类或友元的方法可以访问私有的数据。
ACTIONCHYME
2011-09-16 · 超过12用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:26.9万
展开全部
B是通过A传值的,而不是直接访问了A.X和A.Y,B和A都是不同对象,B当然不能直接访问A的私有成员,A本身的成员XY当然可以直接访问,B是横向访问A,A纵向XY
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
summerioio
2011-09-16
知道答主
回答量:43
采纳率:0%
帮助的人:29.7万
展开全部
你拷贝构造函数写的方式属于浅拷贝(只是简单的传值),这样的结果使得A和B为同一对象,既然是同一对象,就不存在什么公有私有的问题~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jhx1008
2011-09-16 · TA获得超过617个赞
知道小有建树答主
回答量:336
采纳率:0%
帮助的人:322万
展开全部
1L 什么意思,明明传的引用还传值?
2L 的估计java写多了
3L 正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式