带有字段的静态方法

时间:2012-06-28 16:47:24

标签: c++

我目前正在将lua与C ++集成。对于lua我需要静态方法,我已经把它放在一个类中。我需要静态方法与类中的某些字段进行通信(保存数据),但是当我尝试不同的方法时它会失败。它是这样的:

class CClass{
private:
    static int a;

public:
    static int f();
}

我尝试以这种方式实现f()方法:

int CClass::f() {
    a = 5;
    return 0;
}

但它给我带有未解析的外部符号的错误。如何强制该方法将数据保存在那里?

感谢。

1 个答案:

答案 0 :(得分:3)

大多数static成员需要在课外定义:

class CClass { 
    static int a;
    // ...
};

int CClass::a;    // in the .cpp file, not the header