1、声明和定义
在使用友元函数之前需要先明白声明和定义的区别。
从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。
2、
(1)classA.h
//#include "classB.h" // 错误,不可包含classB.h头文件,只需作前置声明即可
class B;
class A {
public:
void printA(B&);
};
注:此文件中一定不能包含classB.h。
(2)classA.cpp
#include "classA.h"
#include "classB.h"
void A::printA(B& b)
{
b.printB();
}
注:此出不可将printA()的实现写在class.h。
(3)classB.h
#include "cl