友元类的理解
借用一下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里面,就能直接访问了,这是一种权限的改变