经理在这段代码中引用了什么?

时间:2013-10-01 05:36:55

标签: c++

我是C ++的新手并且正在尝试学习Extreme Tux Racer的代码。在main方法的code中,它表示manager.Run(...)。对我来说,这似乎是在State命名空间中运行管理器对象的Run方法。

switch (g_game.argument) {
        case 0:
            State::manager.Run(SplashScreen);
            break;
        case 4:
            g_game.toolmode = TUXSHAPE;
            State::manager.Run(Tools);
            break;
        case 9:
            State::manager.Run(OglTest);
            break;
    }

我假设必须在某处声明和定义管理器对象的run方法。但我搜索了所有包含文件的单词管理器,但找不到它。我在这里错过了什么?

1 个答案:

答案 0 :(得分:4)

看起来他们设置的文件名与类名相同,这是一个很好的方法。所以在states.h中,您可以看到所有定义:

class State {
  //...
  static Manager manager;  // manager is static member
  //...
};

静态成员可由::.->运营商访问。

State::manager.Run(..); // valid
State state;
state.manager.Run(..);  // valid as well

State *pState = &state;
pState->manager.Run(..); // also valid