概念
友元是提供了普通函数或者类中其他成员函数访问另一个类的私有或者保护成员的机制.
- 友元函数:普通函数访问某类中的私有或者保护成员,其不是类的成员函数. 调用时候通过传入类对象来实现,只是表述为友元函数,表明该函数对类中的成员有访问权限.并且函数定义在类外(和普通函数相同),只是在类中声明.
- 友元类: 类中成员函数访问另一类的私有或者保护成员
特点
- 提高了程序的运行效率
- 破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员
知识点
- 友元关系没有继承性,即子类不继承父类的友元函数
- 友元关系没有传递性,不能通过中间的类或者实例来传递友元关系.
- 友元关系没有交换性,即A是B的友元,可以访问B中的私有成员,但B并不一定是A的友元