C++类静态变量问题 - C++新增的C程序员

Mic*_*nel 1 c++ compiler-errors static-members

我是一名C程序员,但很久以来就学习过C++ @school.现在我试图用C++编写代码,但是编译错误.请检查并告诉我我的代码有什么问题.

typedef class _filter_session
{
private:
    static int session_count;  /* Number of sessions count -- Static */    
public:
    _filter_session();         /* Constructor */
    ~_filter_session();        /* Destructor */
}FILTER_SESSION;


_filter_session::_filter_session(void)
{
    (this->session_count)++;
    return;
}


_filter_session::~_filter_session(void)
{
    (this->session_count)--;
    return;
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

"错误LNK2001:未解析的外部符号"private:static int _filter_session :: session_count"(?session_count @ _filter_session @@ 0HA)"

我顺便使用Visual Studio 2005.

Plz plz帮帮我.

问候,

微内核

CB *_*ley 8

static变量需要在类主体之外的某个地方定义.该声明的类体中只是一个声明.

例如,在全球范围内:

int _filter_session::session_count;
Run Code Online (Sandbox Code Playgroud)

您需要确保此定义仅在程序中出现一次,因此通常将其放在源文件(.cc.cpp)中,而不是包含在多次翻译单元中的头文件.

为了便于携带,您应该避免使用以_.开头的类名.typedef您的班级名称也几乎没有必要.class Name { //...在C++中引入了一个类型名称,您不必使用它class Name来引用该类型.