C++ 友元函数
在C++中,如果一个函数被定义为友元函数,则可以使用该函数访问类的保护和私有数据。
通过使用关键字friend,编译器知道该给定函数是一个友元函数。
为了访问数据,友元函数的声明应该在类的主体内部以关键字friend开头进行。
C++中友元函数的声明
在上述声明中,friend函数的前面有关键字friend。该函数可以像普通的C++函数一样在程序的任何地方定义。函数定义不使用friend关键字 或作用域解析运算符 。
Friend函数的特点:
- 该函数不在声明为friend的类的作用域内。
- 它不能使用对象调用,因为它不在该类的作用域内。
- 可以像普通函数一样调用,不需要使用对象。
- 它不能直接访问成员名称,必须使用对象名和点成员运算符加上成员名称。
- 可以在私有部分或公共部分声明。
C++友元函数示例
让我们看一个简单的C++友元函数示例,用于打印一个盒子的长度。
输出:
让我们看一个简单的例子,当函数对两个类友好时。
输出:
在上面的例子中,min()函数对两个类友好,也就是说,min()函数可以访问类A和类B的私有成员。
C++友元类
友元类可以访问它声明为友元的类中的私有和受保护成员。
让我们看一个友元类的简单例子。
输出:
在上面的例子中,类B被声明为类A的友元。因此,B是A类的友元。类B可以访问类A的私有成员。