[英]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.