我在名为“sm.h”的头文件中声明了枚举
enum GameStates
{
STATE_NULL = 0,
STATE_INTRO,
STATE_TITLE,
STATE_MAIN,
STATE_EXIT
};
它所做的只是列出可能的游戏状态
但是在“base.cpp”中的以下行:
stateID = STATE_INTRO;
编译器说“STATE_INTRO未在此范围内声明” . 我不知道我做错了什么 . 我知道我已经包含了头文件,我可以从.cpp文件中减速 . 那么为什么我会收到这个错误 .
stateID = STATE_INTRO;
用于:
bool baseFunctions::load_rc()
{
stateID = STATE_INTRO;
currentState = new Intro();
return true;
}
它定义了头文件中的类函数 .
没有全局冲突,因为它是整个计划中唯一的枚举
2 回答
从您的文件链接,
sm.h
和base.h
都有以下内容将
sm.h
中的那个更改为类似的内容而且我希望你会没事的 .
实际上,
base.cpp
加载base.h
,然后当它到达sm.h
时#ifndef为false,所以它排除sm.h
中的所有内容 .最有可能的是你没有在base.cpp中包含“sm.h”