首页 新闻 会员 周边

C++中外部类私有变量可被内部类访问

0
悬赏园豆:10 [已解决问题] 解决于 2017-03-16 09:37

今天在用内部类时,向内部类传入了外部类的指针,本来想要在外部类中将内部类设为友元来访问它的私有变量,但是惊讶的发现在变异的时候不需要将内部类设为友元,内部类依然可以通过指针访问外部类的私有变量。按理说内部类和外部类应该是平行的,为什么会出现这个情况呢

Boblim的主页 Boblim | 菜鸟二级 | 园豆:492
提问于:2017-03-14 11:30
< >
分享
最佳答案
0

写个小的实例,再次验证一下吧. 按理的话,是不能访问的. 可能某个细节没有注意到.

收获园豆:10
[0] | 小虾三级 |园豆:1257 | 2017-03-14 11:38

我在思考是不是编译器的问题。不过按理说外部类就是一个实例,不应该能访问它的私有变量的

Boblim | 园豆:492 (菜鸟二级) | 2017-03-14 11:43

@Boblim: 类是类,外部类的对象是一个实例, 把外部类的对象的指针传递进来,就可以通过对象使用外部类,公开的方法和变量(一般变量不公开)了. 通过对象,不会使用私有变量. 你测试一下. 也可能是编译器的问题.

[0] | 园豆:1257 (小虾三级) | 2017-03-14 11:50

@[0]: 你好,我在网上看到一个关于这个问题的例子,上面说的就是内部类可以通过外部类指针访问外部类的私有变量,和友元性质相同。相关博客我也发在了我的首页。不过还是谢谢你了啊

Boblim | 园豆:492 (菜鸟二级) | 2017-03-14 14:03

@Boblim: ?_? 有点饶了. 好的. 我看看去.

[0] | 园豆:1257 (小虾三级) | 2017-03-16 13:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册