VC ++类。静态变量错误未解析的外部符号

时间:2016-10-30 21:47:57

标签: c++ class

我有这个错误,一直困扰着我的所有程序,可能只是我忽略了一些东西。

出现此错误的代码段:

class myClass {
private:
    int x;
public:
    static int getX() {
        x = 10;
        return x;
    }
};

int main() {
    cout << myClass::getX() << endl;
    return 0;
}

我得到的错误说:

  

错误未解析的外部符号

导致此代码或代码出错的原因是什么?

2 个答案:

答案 0 :(得分:2)

Hibernate的{​​{1}}成员函数与该类的对象没有关联(没有static指针)。

如何在没有对象的情况下访问foo的成员变量?除非他们自己是this,否则你无法做到。

您必须先创建foo的实例。

在你的情况下:

static

答案 1 :(得分:0)

在类中,您尝试使用静态方法访问非静态变量,该方法不起作用。您可以将私有成员变量x转换为静态,并在类外部初始化它。然后你的例子看起来像:

#include <iostream>
class myClass {
private:
    static int x;
public:
    static int getX()
    {
        x = 10;
        return x;
    }
};
int myClass::x = 0;

int main() {
    std::cout << myClass::getX() << std::endl;
    return 0;
}