问题描述
- 在外部类中为什么可以直接访问内部类的私有成员?
-
在外部类中为什么可以直接访问内部类的私有成员?比如,root=root.next,这条语句出现在外部类的方法中,这里,root是定义在外部类中的一个内部类对象,而next是root对象的一个私有属性,为什么可以这样写?
解决方案
内部类是一个特例,相当于友元类(java本身没有友元这个概念)
从语法的角度来说,这样做是方便的。封装性主要是避免调用者随意操作对象的私有成员,调用他们不知道的代码引起问题。但是你定义了外部类,显然内部类也是你定义的,你肯定对自己的代码很了解,所以这里限制反倒是多余。
解决方案二:
http://blog.csdn.net/pdcxs007/article/details/19291481
解决方案三:
外部类能访问内部类的成员
黑马程序员--------内部类和外部类
C++中巧用#define访问类的私有成员
时间: 2024-10-31 03:42:56