类的成员函数中怎么对该类的static成员变量赋值?

时间:2022-06-07 00:40:05
我有一个类Ctest, 其中有一个public静态变量: static int id;

该类有一个public成员函数: void init() 该函数不是静态的.
在该函数中: id =0;
   结果编译出错.

在该函数中: Ctest::id = 0;

 结果编译也出错.

类的成员函数中怎么对该类的static成员变量赋值?

6 个解决方案

#1


你要么在类外面用Ctest::id = 0; 初始化,要么就在搞个静态函数,在调用静态函数初始化或则修改

#2


你需要初始化一下

把这个int Ctest::id = 0;写在类的CPP里。

#3


在非静态函数里是可以访问静态成员的。

#4


静态变量类内定义,类外初始化,不要在类的函数中初始化。
int 类名::静态变量名=0;

#5


cpp类的外部需要定义一下

#6


引用 2 楼  的回复:
你需要初始化一下

把这个int Ctest::id = 0;写在类的CPP里。

这是问题所在。你说的访问,都可以,只是缺少了这个前提。

#1


你要么在类外面用Ctest::id = 0; 初始化,要么就在搞个静态函数,在调用静态函数初始化或则修改

#2


你需要初始化一下

把这个int Ctest::id = 0;写在类的CPP里。

#3


在非静态函数里是可以访问静态成员的。

#4


静态变量类内定义,类外初始化,不要在类的函数中初始化。
int 类名::静态变量名=0;

#5


cpp类的外部需要定义一下

#6


引用 2 楼  的回复:
你需要初始化一下

把这个int Ctest::id = 0;写在类的CPP里。

这是问题所在。你说的访问,都可以,只是缺少了这个前提。