undefined reference静态成员C ++

时间:2015-08-18 01:55:25

标签: c++

我有这样的代码。运行时,它会返回错误:A::x的未定义引用。我该如何解决这个问题?

#include <iostream>

using namespace std;

class A
{
private:
    static int x;

public:
    A(){
    }

    A(int t) {
        x = t;
    }

    static void f() {
        cout<< A::x;
    }

    int f2() {
        return  x;
    }
};

int main() {
    A::f();
    A a;
    a.f2();
}

2 个答案:

答案 0 :(得分:0)

您需要添加

int A::x = 0; //Or any other value

在你的班级宣言之外的某个地方。

答案 1 :(得分:0)

您只声明了静态变量,未定义它。

使用以下方法在课外定义:

int A::x = 0;