我是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方法。但我搜索了所有包含文件的单词管理器,但找不到它。我在这里错过了什么?
答案 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