C++ 对已定义静态私有变量的未定义引用

C++ 对已定义静态私有变量的未定义引用,c++,compiler-errors,static-members,C++,Compiler Errors,Static Members,我在处理静态私有变量时遇到了一个问题。这是我的密码 类别A.h: class ClassA{ static int a; public: int getA(); }; Class.cpp: #include "ClassA.h" int ClassA::a = 9001; int ClassA::getA(){ return a; //<--- Undefined reference to ClassA::a } #包括“ClassA.h” int Clas

我在处理静态私有变量时遇到了一个问题。这是我的密码

类别A.h:

class ClassA{
    static int a;
public:
    int getA();
};
Class.cpp:

#include "ClassA.h"

int ClassA::a = 9001;

int ClassA::getA(){
    return a; //<--- Undefined reference to ClassA::a
}
#包括“ClassA.h”
int ClassA::a=9001;
int ClassA::getA(){

返回一个;//可能ClassA在其声明末尾缺少一个

我无法在您提供的代码中发现任何错误。可能ClassA是在命名空间中定义的?

声明

int ClassA::a;in.h本身

详情如下:

class ClassA{
    static int a;
public:
    int getA();
};
int ClassA::a = 9001;

此外,您的A类声明没有以分号结尾。

我看不出有什么问题。请按照Madsen的建议检查分号,仅此而已。对不起,我忘记了分号的错误此代码很好。您的实际代码中一定有其他您忽略的细节。VTC没有在Cla结尾处添加分号SS声明?是的,这是代码的错误,它已经存在于我的计算机中的.h文件中。不是我,也许是因为我使用Eclipse C++,但是错误仍然存在。在页眉中定义它是个坏主意,因为如果两个单元包含那个头,那么行为是未定义的。