c++私有成员的问题

Rico_Liu 2010-12-09 04:57:01
class A
{
private:
void fun1();
void fun2(A *a)
{
a->fun1();
}
}
为什么a->fun1()不报错呢?
...全文
159 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Metrosexual 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xjy1204 的回复:]
fun2也是类的实现
私有成员是能够被类内部的函数访问的
[/Quote]
+1
就想叫yoko 2010-12-09
  • 打赏
  • 举报
回复
++[Quote=引用 3 楼 xjy1204 的回复:]
fun2也是类的实现
私有成员是能够被类内部的函数访问的
[/Quote]
luciferisnotsatan 2010-12-09
  • 打赏
  • 举报
回复
a是类的实现
a->fun1(); 这代码是写在a内部的,所以编译器认为没问题,给你编译了。

private,public这东西只编译时的概念,编译完,就没有这个概念了
xjy1204 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pengzhixi 的回复:]
还是对:访问控制是针对类,不是针对对象这话不理解。
[/Quote]
+1
qq120848369 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qq120848369 的回复:]
C/C++ code
哦,是这个问题.

公有成员函数的实现里可以访问任何本类对象的任何东西.

私有成员函数的实现里可以访问任何本类对象的任何私有的东西,只要是本类的对象即可,不必是*this的.
[/Quote]

没说全面..其实私有成员函数的实现也是可以访问本类的任何公有的东西的.
qq120848369 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pengzhixi 的回复:]
还是对:访问控制是针对类,不是针对对象这话不理解。
[/Quote]

++
pengzhixi 2010-12-09
  • 打赏
  • 举报
回复
你这个和下面的性质一样:
class Test{
int i;
public:
Test(const Test&rhs)
{
i=rhs.i;//这里也是直接访问
}
};
qq120848369 2010-12-09
  • 打赏
  • 举报
回复
哦,是这个问题.

公有成员函数的实现里可以访问任何本类对象的任何东西.

私有成员函数的实现里可以访问任何本类对象的任何私有的东西,只要是本类的对象即可,不必是*this的.
pengzhixi 2010-12-09
  • 打赏
  • 举报
回复
还是对:访问控制是针对类,不是针对对象这话不理解。
xjy1204 2010-12-09
  • 打赏
  • 举报
回复
fun2也是类的实现
私有成员是能够被类内部的函数访问的
龙哥依旧 2010-12-09
  • 打赏
  • 举报
回复
为什么要报错?
qq120848369 2010-12-09
  • 打赏
  • 举报
回复
为什么会报错,你怀疑那里?

64,637

社区成员

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

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