首页 文章

Enum在头文件中

提问于
浏览
2

我在名为“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 回答

  • 1

    从您的文件链接, sm.hbase.h 都有以下内容

    #ifndef BASE_H_INCLUDED
    #define BASE_H_INCLUDED
    

    sm.h 中的那个更改为类似的内容

    #ifndef SM_H_INCLUDED
    #define SM_H_INCLUDED
    

    而且我希望你会没事的 .

    实际上, base.cpp 加载 base.h ,然后当它到达 sm.h 时#ifndef为false,所以它排除 sm.h 中的所有内容 .

  • 3

    最有可能的是你没有在base.cpp中包含“sm.h”

相关问题