我有一个这样的课程:
class example {
public:
static void setStaticVar() { example::var = 1; };
private:
static int var;
};
但它给了我链接器错误,我不明白为什么。 我想将一些数据存储在每个实例相同的变量中。这就是我想使用静态变量而不是实例变量的原因(使用实例变量我会在类的每个实例中存储相同的数据,这会浪费内存)。
我该怎么做?
答案 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;