借用一下https://www.cnblogs.com/zhuguanhao/p/6286145.html的代码
#include <iostream>
using namespace std;
class A
{
public:
friend class C; //这是友元类的声明
private:
int data;
};
class C //友元类定义,为了访问类A中的成员
{
public:
void set_show(int x, A &a) { a.data = x; cout<<a.data<<endl;}
};
int main(void)
{
class A a;
class C c;
c.set_show(1, a);
return 0;
}
本来A的对象 a是无法直接访问data变量(或者是A的私有成员函数)的,但是在友元类C里面,就能直接访问了,这是一种权限的改变