c++私有成员访问的问题,以前学Java的童鞋不能理解.

[复制链接]
查看11 | 回复4 | 2012-11-28 11:30:33 | 显示全部楼层 |阅读模式
::swap (x,a.x);这一步是在类内部访问私有成员当然可以。cout<<"a x "<<a.x<<endl;这一步在主函数里,是在类外部!访问不了私有成员变量的。要想在类 外 部 访问私有成员,得在类里定义一个函数,就像你定义的getX()函数一样,然后通过对象调用getX(),间接访问x.这就好比去朋友家,客人是不能直接进朋友卧室拿东西的,但是可以告诉朋友或其家人,通过他或是他家人帮你拿到。...
回复

使用道具 举报

千问 | 2012-11-28 11:30:33 | 显示全部楼层
::swap (x,a.x); //这里为什么能访问私有成员变量 因为他在类内部,在类内部所有的私有成员对类是公开的//cout<<"a x "<<a.x<<endl; 这句是在类外部,所以不能访问,如果你在类外部用一句::swap (x,a.x); 直接访问也是错误的...
回复

使用道具 举报

千问 | 2012-11-28 11:30:33 | 显示全部楼层
void swap (A& a) {::swap (x,a.x); //这里为什么能访问私有成员变量}首先这个里的swap是在class A内部的方法,在class A内部的方法里,当然可以访问A的所有级别的变量,包括私有成员。...
回复

使用道具 举报

千问 | 2012-11-28 11:30:33 | 显示全部楼层
因为你是在公有函数中访问的该元素,...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行