C++:友元

普通友元函数

仅是在类里friend了一个外部函数,并在外部定义了它

友元类

在class a1里声明了友元类(friend class a2)不需要再#include“a2.h”, 在class a2里要调用class a1的成员,需要进行#include“a1”

注:不能对两个类所在的头文件相互调用

类的友元成员函数(比较复杂)

  • 先将会被声明为友元的类class a2进行编写,对它的内部函数(会被声明为类的友元成员函数)进行声明,不定义,注意需要对class a1;进行声明可能会在该内部函数声明中使用
  • 将class a1进行编写,因为要声明类的友元成员函数,需要#include"a2" 在类里 friend class::func();
  • 由于不能相互调用,所以在class a2.cpp中进行#include"a1.h", 在对各个a2类中的成员函数进行定义

详情点击这里

补充:
若是本身想调用自己的友元函数,一定要记住友元函数的声明只是一个赋予权限的过程,并非真正的声明
所以想在本身中调用,必须先真正声明该友元

猜你喜欢

转载自www.cnblogs.com/Liberavi/p/11568484.html