繁体   English   中英

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

[英]VC++ Classes. Static variables error unresolved external symbol

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

出现此错误的代码段:

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

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

我得到的错误说:

错误未解决的外部符号

是什么原因造成的或我的代码有什么问题?

foo static成员函数未与该类的对象关联(没有this指针)。

又如何在没有对象的情况下访问foo的成员变量? 除非它们本身是static ,否则不能。

您必须先创建foo的实例。

在您的情况下:

static int myClass::getX() {
    myClass obj;
    obj.x = 10;
    return obj.x;
}

在类内部,您尝试使用无法使用的静态方法访问非静态变量。 您可以将私有成员变量x转换为static并在类外部对其进行初始化。 然后您的示例如下所示:

#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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM