c++ - 带字段的静态方法

标签 c++

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

class CClass{
private:
    static int a;

public:
    static int f();
}

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

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

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

谢谢。

最佳答案

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

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

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

关于c++ - 带字段的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11249314/

相关文章:

c++ - 错误: invalid conversion from 'char' to 'const char*' [-fpermissive]|

c++ - 手动为按钮、工具栏、选项卡等绘制渐变?

c++ - 如果使用预定义的 map ,重建项目需要非常长的时间?

c++ - 查找不重复的字符串排列

c++ - 在 VC++14 中使用 std::basic_stringstream<char16_t> 时出错

c++ - vector 元素数据在 find() 操作后损坏

C++ 问题 :After assigning value to a variable, 另一个变量改变了

c++ - 为什么 C++ 模板参数应该声明为类类型?

c++ - QTableView/QTableWidget 网格样式表 - 网格线宽

c++ - 打开简历; C++;从线性三角法矩阵中提取点云点 (x,y,z)