枚举类型的函数返回错误"未在此范围内声明"

时间:2014-05-13 13:46:09

标签: c++

我在一个名为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

2 个答案:

答案 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>