友元函数需要在类中声明,在类外定义。如果友元函数在头文件中声明,那么在cpp文件中定义时需要包含该头文件。例如:
// header.h
class MyClass {
public:
friend void myFriendFunc();
};
// cpp.cpp
#include "header.h" // 必须包含头文件
void myFriendFunc() {
// 函数实现
}
否则,如果在cpp文件中定义了友元函数而没有声明,编译器就会找不到该函数的定义。