某些情况下,需要在类的外部直接访问私有和保护成员,以提高效率,避免参数传递、类型检查和安全性造成时间浪费。为此,引入友元。
对于一个类,可以利用friend关键字将一把函数,其它类的成员函数或者其他类声明为此类的友元,使得此类中本来隐藏的信息(保护、私有)可以被友元访问。
友元:
1.友元函数
2.友元类
友元类中所有的成员函数都是友元函数
友元函数在类中声明,可放在公、私、保。定义通常在外部。
friend关键字只是引用性声明,友元函数不属于当前类,虽然在类中,但却不受公、私、保访问权限的控制,可以看成类外或不存在当前类
友元函数
普通函数可以声明为类的友元函数,一个类中的成员函数也可以声明为另一个类的友元函数,通常将此种友元函数成为友元成员。
友元类
一个类作为另一个类的友元。友元类的所有成员函数都是另一个类的友元函数,都可以访问另一个类中的隐藏信息。比如:将A类声明为B类的友元类,A可以访问所有成员,包括数据成员和成员函数