C++ 声明名称中包含作用域解析运算符的指针
我试图理解这个关于双链表的教程。 我不明白这部分C++ 声明名称中包含作用域解析运算符的指针,c++,C++,我试图理解这个关于双链表的教程。 我不明白这部分 element* list::FirstEl = NULL; //This initialises the static element* 'FirstEl' to NULL element* list::LastEl = NULL; //This initialises the static element* 'LastEl' to 我想说,这个代码创建了一个名为“List::Fieldel[1]的类型元素指
element* list::FirstEl = NULL; //This initialises the static element* 'FirstEl' to NULL
element* list::LastEl = NULL; //This initialises the static element* 'LastEl' to
我想说,这个代码创建了一个名为“List::Fieldel[1]的类型元素指针”,并将其设置为NULL,但是作用域解析操作符使我认为在C++中还没有覆盖到一些东西。
这是怎么回事?这是一个
静态的类成员初始化
class list
{
static element* FirstEl;
static element* LastEl;
};
您拥有的是成员的初始化
变量的名称是FirstEl
和LastEl
,但它们是类的一部分,因此在定义它们时必须限定它们的名称
就像在定义方法名时对其进行限定一样。与大多数c语言一样,从右到左阅读:在这个语句(;)中,值“Null”被赋值(=)给“FirstEl”,它是对象“list”的成员变量(::),是指向“element”类型对象的指针(*)。