一个很简单的C++的一起代码,麻烦解释解释

一个很简单的C++的一行代码,麻烦解释解释MenuBaseClient* MenuBase::s_client NULL我刚开始接触C++,这

一个很简单的C++的一行代码,麻烦解释解释
MenuBaseClient* MenuBase::s_client = NULL;

我刚开始接触C++,这行代码是什么意思啊?为什么会有两个类?
我接触的都是MenuBase::s_client = NULL;这个我理解,即MenuBase里的s_client属性


[解决办法]
类的静态变量初始化
[解决办法]
这语句的意思是定义一个指针s_client,该指针的类型为:MenuBaseClient*,并且把该指针置空。
定义任何变量,都需要声明它的类型。形如:变量类型 变量名;你这条语句就是多了对该变量的初始化而已。
[解决办法]

C/C++ code
MenuBaseClient* MenuBase::s_client = NULL;  //定义语句(含初始化)//类型 MenuBaseClient*//变量名 MenuBase::s_client //初始值:NULL
[解决办法]
楼上需要的应该是这样的解释
MenuBaseClient.h:
class MenuBaseClient
{...};

MenuBase.h:
class MenuBaseClient;
class MenuBase
{
private:
static MenuBaseClient* s_client;//声明类的静态成员变量,类型是一个MenuBaseClient的指针
int m_nNum;//声明普通成员变量
public:
MenuBase();
....
protected:
....
};

MenuBase.cpp:
#include "MenuBase.h"
#include "MenuBaseClient.h"

MenuBaseClient* MenuBase::s_client = NULL;//初始化静态成员变量

MenuBase::MenuBase()
{
this->m_nNum = 0;//初始化成员变量
}

对照这个代码, 可以这样理解:静态成员变量的上级是类, 普通成员变量的上一级是对象.