c++ - 在 cpp 文件中设置静态枚举变量的正确方法

标签 c++ static-members

设置静态变量时出现以下错误

error: expected primary-expression before '.' token

“GameScene.h”

#ifndef __GAME_SCENE_H__
#define __GAME_SCENE_H__

class Game {
public:

    enum InteractionMode {
        EDITING,
        PLAYING };
    static Game::InteractionMode mode;
}
#endif // __GAME_SCENE_H__

“GameScene.cpp”

#include "GameScene.h"

Game *Game::singleton() {
    if (_GameSingleton == NULL) {
        _GameSingleton = Game::create();
        Game::mode = Game::InteractionMode.PLAYING;   //error on this line
    }
    return _GameSingleton;
}

最佳答案

代替

Game::mode = Game::InteractionMode.PLAYING

直接写

Game::mode = PLAYING

另外,由于modestatic,你必须在类外定义它,添加:

Game::InteractionMode Game::mode;

关于c++ - 在 cpp 文件中设置静态枚举变量的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15680589/

相关文章:

c++ - constexpr : literal class type copy behavior

c++ - 函数内不允许定义或重新声明

c++ - 从静态函数访问成员 - std::foreach

c++ - 字母排序是向后使用 string.compare()

c++ - std::lock 仍然导致死锁

c++ - 为什么我不能中断这个特定的 boost::thread?

Java 静态变量更新

c++ - OpenGL:如何平滑地绘制三角形或多边形

c++ - QtCreator 2.7.0 & 类浏览器

java - Java静态成员在静态 block 之后初始化吗?