新手请教一个问题

jfsun3 2006-01-08 11:42:19
以下是程序代码:
#include <iostream>
using namespace std;


class a
{
private:
int ii;
public:
a(int iv){ii=iv;}
a(){ii=12;}
void test(a& av)
{
ii=av.ii ;
cout<<ii<<endl;
}
};

int main()
{
a vaa(10);
a va;
va.test (vaa);
return 0;
}

上面代码在vs 2003下可以顺利编译通过。我想问一个问题:代码中的ii是一个私有变量,但是在test函数中,为什么av可以直接调用私有变量ii呢?
请执教,谢谢
...全文
127 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jfsun3 2006-01-09
  • 打赏
  • 举报
回复
谢谢各位的指点。
fine10000 2006-01-09
  • 打赏
  • 举报
回复
友元是间接的访问私有成员的函数.
zw24127 2006-01-09
  • 打赏
  • 举报
回复
想一下友元不也是一样吗?
执假以为真 2006-01-09
  • 打赏
  • 举报
回复
test是类的成员函数呀,当然可以访问类的私有变量
pyrophile 2006-01-09
  • 打赏
  • 举报
回复
楼上的全对,类的私有成员可以被本类成员函数访问。
如:
class aa
{
public:
int get_value() {return _val;}//这里就是通过这个函数来访问aa类中的私有变量的
int set_value(int b) {return _val = b;}//这里通过这个函数来设置aa类中的私有变量
private:
int _val;
};
yxg80 2006-01-09
  • 打赏
  • 举报
回复
回复人: iicpp(学无止境...)

av是a类的对象,
test函数是a类的成员函数,
类的私有成员可以被本类成员函数访问,
所以test可以直接访问av.ii



flyrain000 2006-01-09
  • 打赏
  • 举报
回复
本类的成员函数(私有或者公共)能访问本类的私有成员
iwantfat 2006-01-09
  • 打赏
  • 举报
回复
楼上正解
私有成员变量得访问 只能靠成员函数。
test作为成员函数当然能访问成员变量,不但能访问当前对象得成员变量,而且可以访问
同一个类的其他对象的成员变量。
iicpp 2006-01-08
  • 打赏
  • 举报
回复
av是a类的对象,
test函数是a类的成员函数,
类的私有成员可以被本类成员函数访问,
所以test可以直接访问av.ii
llf_hust 2006-01-08
  • 打赏
  • 举报
回复
因为test是类的成员函数呀,当然可以访问类的私有变量

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧