1

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

class CClass{
private:
    static int a;

public:
    static int f();
}

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

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

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

谢谢。

4

1 回答 1

3

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

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

int CClass::a;    // in the .cpp file, not the header
于 2012-06-28T16:50:55.710 回答