友元:
1. 为什么需要友元?
类具有封装恶化信息隐藏的特性,所以只有类的成员函数才能访问类的私有成员。当非成员函数要访问类中的私有成员时,就必须将数据成员都定义成公有的,这破坏了隐藏的特性。而且在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检测都需要时间开销,从而影响到了运行效率。所以提出友元。可以使非成员函数访问类中的私有成员。
2.友元概念和分类
友元可以是一个函数也可以是一个类,前者称为友元函数,后者称为友元类。
3. 友元的作用:
4.友元的特点:友元提供了不同类的成员之间、类的成员函数与一般函数之间进行数据共享的机制。
友元关系不具有对称性,即A是B的友元,而B不一定是A的友元。
友元关系也不具有传递性,即A是B的友元,B是C的友元,但A不一定是C的友元。
友元关系不能被继承。