概念概述
- 友元提供了一种突破类访问限定符封装的方式,友元分为:友元函数和友元类,在函数声明或者类声明的前面加 friend,并且把友元声明放到一个类的里面。
- 外部友元函数可访问类的私有和保护成员,友元函数仅仅是一种声明,他不是类的成员函数。
- 友元函数可以在类定义的任何地方声明,不受类访问限定符限制。
- 一个函数可以是多个类的友元函数。
- 友元类中的成员函数都可以是另一个类的友元函数,都可以访问另一个类中的私有和保护成员。
- 友元类的关系是单向的,不具有交换性,比如 A 类是 B 类的友元,但是 B 类不是 A 类的友元。
- 友元类关系不能传递,如果 A 是 B 的友元,B 是 C 的友元,但是 A 不是 C 的友元。
- 有时提供了便利。但是友元会增加耦合度,破坏了封装,所以友元不宜多用。
- 友元函数比较简单,这里不做过多的举例和讲解,简单的说就是,外面的函数可以访问类的成员变量,你只需要在类里面的公有区域friend+函数全称,就可以了
友元函数的使用1
日期类的实现
日期类的实现(C++)-优快云博客
https://blog.youkuaiyun.com/Jason_from_China/article/details/142516352
友元函数的使用2:
这里我直接拿着我画图的图解来就可以了,讲述的比较清楚