C++ 对已定义静态私有变量的未定义引用
我在处理静态私有变量时遇到了一个问题。这是我的密码 类别A.h: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
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++,但是错误仍然存在。在页眉中定义它是个坏主意,因为如果两个单元包含那个头,那么行为是未定义的。