在我的类声明的 public
部分,我有这个:
static float m_screenWidth;
static float m_screenHeight;
然后我可以在类构造函数或其他地方将它们设置为我想要的任何值,但是,当我使用它们时编译器失败,说:
未定义的体系结构符号
在我尝试访问这些成员的任何行上都会注明这一点。在类方法中,我按名称访问它们。在非成员函数中,我使用 className::
前缀访问它们。没关系,他们不喜欢。有什么建议吗?
值得注意的是,它们不会出现“未声明的”错误,因此它们在某种程度上得到了识别。
最佳答案
该错误消息是链接器失败消息,而不是编译器失败消息。它声明找不到变量的定义。
在 public
部分,它们是声明。它们必须在 class
定义之外被定义,恰好一次:
float className::m_screenWidth;
float className::m_screenHeight;
关于c++ - 静态类变量的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14259877/