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”类型对象的指针(*)。