1、C++为什么引入友元概念?
由于面向对象编程提倡“隐藏”,因此一个类或一个全局函数只能通过成员函数通过访问另一个类的私有成员。但是有些时候,两个类之间的关闭十分密切,如果只能通过成员函数访问另一个的成员变量的话很麻烦(尤其是对于习惯于C语言编程的程序员来讲)。因此,兼顾“隐藏”和方便,C++引入了一个折中的方案。便是友元。即,可以在一个类中将另外一个类另外一个类的成员函数或者是一个全局函数声明为自己的友元函数,或者友元类。这样,在使用这些类、类的成员函数或者全局函数时,就能直接访问声明了友元的类的私有成员。
2、友元的种类
- 友元函数: 一个类的友元函数可以访问该类的私有成员.
- 友元类: 如果A是B的友元类,那么A的成员函数可以访问B的私有成员。
3、友元注意事项
友元类之间的关系不能传递,不能继承。