Visual c++ 将值赋给静态变量时出错
在这段代码中,我不知道为什么编译器不允许我将值0赋给变量x。我突出显示了导致问题的行Visual c++ 将值赋给静态变量时出错,visual-c++,Visual C++,在这段代码中,我不知道为什么编译器不允许我将值0赋给变量x。我突出显示了导致问题的行 类列表{ 私人: INTP; 公众: 静态int x; 全部无效(); }; 无效列表::总计(列表*a){ x+=a->p; cout运算符+=试图增加x的值。在使用它之前,您需要初始化x。您已经在类中声明了静态,但尚未为其定义变量 class List{ private: int p; public: static int x; // this is just a declaratio
类列表{
私人:
INTP;
公众:
静态int x;
全部无效();
};
无效列表::总计(列表*a){
x+=a->p;
cout运算符+=
试图增加x
的值。在使用它之前,您需要初始化x
。您已经在类中声明了静态,但尚未为其定义变量
class List{
private:
int p;
public:
static int x; // this is just a declaration
void total();
};
您需要定义它,通常在关联的cpp文件中:
List::x = 0; // define variable and initialise
引述:
9.4.2静态数据成员
静态数据成员在其类定义中的声明是
不是定义,可能是不完整的类型,而不是
cv限定的void。静态数据成员的定义
应出现在包含成员类的命名空间范围中
定义。在命名空间范围的定义中
静态数据成员应通过其类名限定,使用::
运算符的定义中的初始值设定项表达式
静态数据成员在其类的范围内
(basic.scope.class)
你得到了什么错误?非常感谢,现在它是有意义的。它在理解静态变量方面帮助很大!
List::x = 0; // define variable and initialise