一.友元
友元是C++提供的一种破坏数据封装和数据隐藏的机制。
通过将一个模板声明为另一个模板的友元,一个模板能够引用到另一个模板中本是隐藏的信息。
可以使用友元函数和友元类。
注意:为了确保数据的完整性,及数据封装与隐藏的原则,建议不使用或少使用友元。
二.友元函数
友元函数是在类声明中由关键字friend修饰说明的非成员函数,在它的函数体重能够通过对象名访问private和protected成员。
作用:增强灵活性,使程序员可以在封装和快速性方面做合理选择。
访问对象中的成员必须通过对象名。
一个雷的成员函数可以是另一个类的友元。即:一个类的成员函数可以说明为另一个类的友元函数,以便通过该成员函数访问另一个类中的成员。
三.使用时应该注意的问题
友元关系是不能传递的。
如:B类是A类的友元
C类是B类的友元
但C类与A类没有友元关系。
2.友元关系是单向的
B类是A类的友元(B类的成员可以访问A类的所有成员)
但A类不能访问B类中的所有成员。