c++ - 静态类变量的编译器错误

标签 c++

在我的类声明的 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/

相关文章:

c++ - for循环中超过2个条件?

c++ - 如何报告异或为零的子数组的索引?

c++ - final 是否意味着覆盖?

c++ - 如何处理 windows.h 中的 max 宏与 std 中的 max 冲突?

c++ - 在运行时访问任何结构成员

c++ - SDL OpenGL 渲染问题

c++ - 关于在 C/C++ 中比较整数和 float / double

c++ - 通过交换元素使数组相同

c++ - 如何在 opengl 和 c++ 中围绕 "camera"旋转

c++ - 在 ffmpeg 中检测超时