类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。

参考 菜鸟教程

码云:https://gitee.com/hinzer/my-notes-of-C_plus

 

思维导图

【C++学习笔记】Step5 友元函数、友元类_C

 

代码

#include "iostream"

using namespace std;

class A
{
	friend class B;
public:
	A()
	{
		num = 10;
	}
	friend void say_num(A a);	//声明友元函数
private:
	int num;	//类A的私有成员变量
};

class B:public A
{
public:
	B()
	{
		cout << num << endl;
	}

};

void say_num(A a)
{//say_num不是类的成员函数。 是类A的友元函数
	cout << "say num:" << a.num << endl;

}
int main(int argc, char const *argv[])
{
	
	B p;
	A a;
	say_num(a);	
	return 0;
}

 

编译运行

 

【C++学习笔记】Step5 友元函数、友元类_C_02