我在一个名为includes.h的Header-File中声明了一个枚举,如下所示:
#include <xxx>
#iclude "tools.h"
enum Return_Main_Menu { Start, Credits, Help };
另外我有tools.cpp:
#include "tools.h"
Return_main_menu mainmenu()
{
// ...
}
a tools.h:
#include "including.h"
#include "tools.h"
Return_main_menu mainmenue();
当然是一个带有Return_Main_Menu mainmenu()函数调用的main.cpp:
#include "including.h"
using namespace std;
int main()
{
cout << "Start\n" << endl;
Return_main_menu mainm = mainmenu();
return 0;
}
我没有看到任何问题,但编译器返回错误:
../xyy/main.cpp: In function 'int main()':
../xyy/main.cpp:9:46: error: 'mainmenu' was not declared in this scope
答案 0 :(得分:1)
您调用了函数
Return_main_menu hauptmenue();
<。>文件中的和
Return_main_menu mainmenu()
<。>在.cpp文件中,您的枚举声明为
enum Return_Main_Menu { Start, Credits, Help };
所以你混淆了一些名字。请记住,C ++区分大小写,因此Return_Main_Menu与Return_main_menu不同。
答案 1 :(得分:1)
您需要为mainmenu()
文件转发声明main.cpp
。您在hauptmenue()
中转发声明tool.h
,但main.cpp
中未包含的内容{em} <!} / p>