如何在C ++类中设置静态变量?

时间:2014-07-30 16:47:05

标签: c++ class variables static member

我有一个这样的课程:

class example {
public:
    static void setStaticVar() { example::var = 1; };
private:
    static int var;
};

但它给了我链接器错误,我不明白为什么。 我想将一些数据存储在每个实例相同的变量中。这就是我想使用静态变量而不是实例变量的原因(使用实例变量我会在类的每个实例中存储相同的数据,这会浪费内存)。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

在源文件

int example::var = 0;

答案 1 :(得分:2)

您需要初始化变量一次。在一个.cpp中,在任何函数之外,您必须初始化变量:

int example::var = 0;

答案 2 :(得分:2)

您必须从类定义中初始化它。

试试这个。

class example { ... };

// initialize it to avoid linker errors
int example::var = 1;