编译器发出标识符“func”未定义的错误:
我不知道为什么会出现这个错误,因为我链接了头文件,并声明了这个函数。我使用Visual Studio 2017社区。 p>
我的代码:
foo.h中
#pragma once
class Foo {
friend void func();
};
Foo.cpp中
#include "foo.h"
void func()
{
}
bar.h
#pragma once
class Bar {
void baz();
};
bar.cpp
#include "bar.h"
#include "foo.h"
void Bar::baz()
{
func(); // indentifier "func" is undefined
}
答案 0 :(得分:1)
声明函数。
void func();
向类声明函数friend
不会将函数声明为其他任何内容 - 该函数仅对类Foo可见。所以你应该实际声明这个功能。
减少混淆:声明函数的存在与将 friend
发货声明为类不同。