友元
使用场景:其他类或函数访问,类得私有成员变量时使用
优点:友元函数和友元类可以直接访问,该类的私有成员
缺点:破坏类的封装性和维护性
封装
优点:1. 确保用户代码不会无意间破坏封装对象的状态。
2.被封装的类具体细节可以随时改变,不用去调整用户级别的代码
数据成员定义为private的,类的作者可以较为自由的修改,当具体实现部分改变时,只需要检查类内的影响就可以。只要类的接口不变,用户代码就无须改变。如果定义为public,使用原来数据成员的代码都可能失效。
使用private的另一个好处,防止由于用户的原因造成类数据破坏,这样发现程序缺陷破坏类的状态可以再有限的范围内定位缺陷