该类有一个public成员函数: void init() 该函数不是静态的.
在该函数中: id =0;
结果编译出错.
在该函数中: Ctest::id = 0;
结果编译也出错.
类的成员函数中怎么对该类的static成员变量赋值?
6 个解决方案
#1
你要么在类外面用Ctest::id = 0; 初始化,要么就在搞个静态函数,在调用静态函数初始化或则修改
#2
你需要初始化一下
把这个int Ctest::id = 0;写在类的CPP里。
把这个int Ctest::id = 0;写在类的CPP里。
#3
在非静态函数里是可以访问静态成员的。
#4
静态变量类内定义,类外初始化,不要在类的函数中初始化。
int 类名::静态变量名=0;
int 类名::静态变量名=0;
#5
cpp类的外部需要定义一下
#6
这是问题所在。你说的访问,都可以,只是缺少了这个前提。
#1
你要么在类外面用Ctest::id = 0; 初始化,要么就在搞个静态函数,在调用静态函数初始化或则修改
#2
你需要初始化一下
把这个int Ctest::id = 0;写在类的CPP里。
把这个int Ctest::id = 0;写在类的CPP里。
#3
在非静态函数里是可以访问静态成员的。
#4
静态变量类内定义,类外初始化,不要在类的函数中初始化。
int 类名::静态变量名=0;
int 类名::静态变量名=0;
#5
cpp类的外部需要定义一下
#6
这是问题所在。你说的访问,都可以,只是缺少了这个前提。