在以下代码中找到错误:
class A
{
public:
static int i;
void print()
{
cout<< i << endl ;
}
};
int main()
{
A a;
a.print();
}
我运行上面的代码,我得到了 "undefined reference to `A::i'" 。为什么会出现此错误?
最佳答案
由于 A::i
是一个 static
成员,它必须是 defined outside of the class :
using namespace std;
class A
{
public:
static int i; // A::i is declared here.
void print()
{
cout << i << endl;
}
};
int A::i = 42; // A::i is defined here.
关于c++ - 如何修复 "undefined reference"编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4544497/