我有这个错误,一直困扰着我的所有程序,可能只是我忽略了一些东西。
出现此错误的代码段:
class myClass {
private:
int x;
public:
static int getX() {
x = 10;
return x;
}
};
int main() {
cout << myClass::getX() << endl;
return 0;
}
我得到的错误说:
错误未解析的外部符号
导致此代码或代码出错的原因是什么?
答案 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;
}