关于C++的变量说明

来源:百度知道 编辑:UC知道 时间:2024/06/24 01:00:19
CNode* CLoad::m_pNode;
CNode是一个类
CLoad也是一个类
那这句话什么意思?这句话写在#define的下面,没有在任何类或者子程序或者主程序里,难道是全部变量?
CLoad类中有以下变量说明
static CNode* m_pNode;//指向CNode类对象的指针

那上面那句命令到底有什么用?

在类中已经声明过了,为什么还要再重新声明一次?

类的静态成员变量,在类声明中要写(也就是你在问题补充中描述的),在类体外面还要再写一次(这次才是定义,才会给它分配空间,此时还允许初始化)
static CNode* m_pNode; // 这一句通常出现在.h头文件中,是声明
CNode* CLoad::m_pNode = NULL; // 这一句通常出现在.cpp源文件中,是定义

你是不写错了,CNode* CLoad::m_pNode; 中*是不是:呀,这样是派生,类的继承了

::是C++是的或限定符。
这句代码的意是声明一个指针变量,这个指针变量所指向的类型是CNode,同时这个变量是类CLoad中的数据成员,所以要用::限定它,防止重名。