在 .cpp 文件中使用类的静态成员

Posted

技术标签:

【中文标题】在 .cpp 文件中使用类的静态成员【英文标题】:using static member of a class in .cpp file 【发布时间】:2012-04-02 22:31:55 【问题描述】:

我创建了一个类,并在公共部分中声明了以下内容:

static int num;

在同一个 .h 文件中的构造函数中,我做了:

num++;

到目前为止一切正常。

问题是,我的析构函数的实现是在 .cpp 中,我写道:

num--;

但视觉不允许我这样做。它大喊:

致命错误 LNK1120:1 个未解决的外部问题

有什么帮助吗?

【问题讨论】:

回答您的问题:任何代码?另外:您是否定义(不是声明)该静态成员?你在用什么书吗? 【参考方案1】:

您必须在 *.cpp 文件中定义您的静态变量。这通常在顶部完成。例如:

// in the *.h file
class MyClass

    public:
        static int num;
        MyClass();
        ~MyClass();
;

// in the *.cpp file
int MyClass::num = 0;

MyClass::MyClass()

    MyClass::num++;


MyClass::~MyClass()

    MyClass::num--;

【讨论】:

以上是关于在 .cpp 文件中使用类的静态成员的主要内容,如果未能解决你的问题,请参考以下文章

boost::mpi 作为模板类的静态成员

C++ 静态结构类型成员初始化

MFC中静态成员函数调用其他类的非静态变量

如何将静态 const 变量保留为类的成员

静态常量非整形成员变量的初始化问题

4CPP 面向对象之 ——多态多继承static 成员const 成员