2014-05-13 177 views
0

我已经宣布在名为including.h像这样一个头,一个文件枚举“并没有在这个范围内声明”:函数返回错误

#include <xxx> 
#iclude "tools.h" 

enum Return_Main_Menu { Start, Credits, Help }; 

另外我有tools.cpp:

#include "tools.h" 
Return_main_menu mainmenu() 
{ 
    // ... 
} 

一个的Tools.h:

#include "including.h" 
#include "tools.h" 

Return_main_menu mainmenue(); 

,当然是一个与Return_Main_Menu MA的函数调用的main.cpp inmenu():

#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

您需要将函数声明放在'tools.h'头文件'Return_main_menu mainmenu();' – CoryKramer

回答

1

你在.h文件调用的函数

Return_main_menu hauptmenue(); 

Return_main_menu mainmenu() 

在.cpp文件和您的enumer宣称为

enum Return_Main_Menu { Start, Credits, Help }; 

所以你混了一些名字。请记住,C++区分大小写,因此Return_Main_Menu与Return_main_menu不同。

+0

不,这不是解决方案,我很抱歉。这只是一个简单的输入错误,当复制到StackOverFlow 我会改变这个问题。 – PEAR

+0

所以你有两种不同的方法(hauptmenue()和mainmenu())?我假定你把它们命名为错误的,所以你的函数的声明和定义不适合在一起。 –

1

您需要为您的main.cpp文件转发声明mainmenu()。您前进在tool.h,但这不包括在您的main.cpp递归包含在tools.h

+0

这是,我错过了添加到including.h 我会改变这个问题。 – PEAR