我有一个像下面这样的类:
class Parameter {
public:
Parameter();
virtual ~Parameter();
bool parse();
static int WindowWidth;
static int WindowHeight;
....
};
现在,我主要选择:
int main(int argc, char *argv[]) {
Parameter parameter;
Controller controller;
parameter.parse("parameter.ini");
controller.initialise();
return 0;
}
现在,在 Controller 对象中,我需要访问 Parameter 类的静态成员。因此,我只是在做:
Controller::Controller() {
m_numberOfSweepers = Parameter::NumberOfSweepers;
m_ticks = Parameter::NumberOfTicks;
m_window_cx = Parameter::WindowWidth;
m_window_cy = Parameter::WindowHeight;
}
一切都编译得很好。取出GDB,可以看到在parameter对象的parser方法中,正确的值在静态成员中。但是在 Controller::Controller() 方法中,我得到了垃圾。
我究竟做错了什么?
提前致谢。
编辑: 在 Parameter 类的 cpp 文件中,我执行以下操作(在任何方法之外):
int Parameter::WindowWidth;
int Parameter::WindowHeight;