为什么它会给我一个链接错误?我认为使用this->x
访问静态成员是可以的。逻辑上听起来不错。我想一个实例指针可以根据OOPS概念访问类拥有的内容。
答案 0 :(得分:6)
您还需要定义静态成员变量。例如:
// in .h
class some_class {
static int v; // it's just a declaration
};
// in .cpp
int some_class::v; // here's the defination
答案 1 :(得分:1)
将声明放入Foo.h文件中:
class Foo {
static int v;
};
将 defenitions 放入您的Foo.cpp文件中:
int Foo::v;
以下是一些解释:Why the static data members have to be defined outside the class separately in C++,Defining static members in C++
我发现以不同方式处理链接错误很有帮助。如果你针对语言规则做了某些事情 - 将发出编译错误,所以如果你得到一个链接错误,那么你必须不是直接违反语言规则而不是你省略了一些东西。通常,错误消息会告诉您具体省略了什么。