由访问权限想到友元声明
coding过程中遇到复杂框架下的类之间相互调用的情况,此时必定绕不开类成员的访问权限问题,典型的是一些自己写的继承自体系结构中已经有的类访问其他类的私有成员或者受保护成员的问题。
此时,应阅读父类代码,理解父类对相似问题的处理方式。
以下为经验之谈:
核查原有父类对其他类成员的访问方式,尤其应注意是否有友元声明。
若有友元声明,最好将自定义的子类也也声明相关友元关系,以防出错。
重点理解:某类的友元类只归该类所有,友元关系不能传递,不能继承。
所以,尽量不要用友元控制类成员的访问权限,否则子类也许同样的友元声明。
一方面,破坏封装,另一方面,父类子类声明代码会重复。