友元
类可以允许其他类或函数访问它的非共有成员,办法是令其他类或函数成为它的友元。如果类想把一个函数作为它的友元,只需要添加一条以friend关键字开始的函数声明语句即可。
友元声明只能出现在类定义的内部,但是在类内出现的具体位置不限,友元不是类的成员也不受它所在区域访问控制级别的约束。
一般来说最好在类定义开始或结束前的位置集中声明友元
友元声明
友元的声明仅仅指定了访问的权限,而非一个通常意义上的函数声明,如果我们希望类的用户能够调用某个友元函数,那么我们就必须在友元声明之外再专门对函数进行一次声明
为了使友元对类的用户可见,我们通常把友元的声明与类本身放置在同一个头文件中(类的外部)。
Tips:封装的益处
1、确保用户代码不会无意间破坏封装对象的状态
2、被封装的类的具体实现细节可以随时改变,而无须调整用户级别的代码