友元
-
友元
在C++中,一个类可以有
public
、protected
、private
三种属性的成员,通过对象可以访问public
成员,只有本类中的函数可以访问本类的private
成员。现在来介绍一种例外情况——友元(friend)。借助友元,可以使得其他类中的成员函数以及全局范围内的函数访问当前类的private
成员。friend
的意思是朋友,或者说是好友,与好友的关系显然要比一般人亲密一些。我们会对好朋友敞开心扉,倾诉自己的秘密,而对一般人会谨言慎行,潜意识里就自我保护。在C++中,这种友好关系可以用friend
关键字指明,中文多译为“友元”,借助友元可以访问与其有好友关系的类中的私有成员。如果你对“友元”这个名词不习惯,可以按原文friend
理解为朋友。但是有一点需要强调,哪些函数、成员函数或类为友元是由类定义的,而不能从外部强加友情。 -
友元函数
在当前类以外定义的、不属于当前类的函数,也可以在类中声明,但要在前面加
friend
关键字,这样就构成了友元函数。友元函数可以是不属于任何类的非成员函数,也可以是其他类的成员函数。友元函数可以访问当前类中的所有成员,包括
public