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

时间:2014-04-11 10:49:18

标签: c++ compiler-errors static-members

我遇到了处理静态私有变量的问题。这是我的代码。

ClassA.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
}

正如你所看到的,我在实现文件中定义了静态变量,因为它一遍又一遍地说过,我也对其他类的其他静态成员做了这个,并且它们没有任何问题,但是这个没有“T。有没有人有任何解决方案?

2 个答案:

答案 0 :(得分:0)

也许ClassA在声明结束时缺少;

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

答案 1 :(得分:-2)

声明

int ClassA :: a;在.h本身

如下:

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

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