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私有的,求解。
展开
4个回答
展开全部
B是通过A传值的,而不是直接访问了A.X和A.Y,B和A都是不同对象,B当然不能直接访问A的私有成员,A本身的成员XY当然可以直接访问,B是横向访问A,A纵向XY
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你拷贝构造函数写的方式属于浅拷贝(只是简单的传值),这样的结果使得A和B为同一对象,既然是同一对象,就不存在什么公有私有的问题~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1L 什么意思,明明传的引用还传值?
2L 的估计java写多了
3L 正解
2L 的估计java写多了
3L 正解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询