【发布时间】:2015-09-29 00:27:37
【问题描述】:
出了点小问题,报错:"C2361: initialization of *identifier* is skipped by 'default' label"
我使用内部类成员来设置在我的方法中使用的所选方法。
这些方法使用此内部成员 (static int) 和开关来确定设置了哪种方法。
编译时开关需要一个初始值,所以我决定使用static const int。不过VS还是不爽,我也改不了static const int。
我很确定这没什么大不了的,但这很令人沮丧。
示例:
class test{
public:
static int Val;
static void setVal(int val);
static int doStuff(void);
};
test::setVal(int val){
Val=val;
}
test::doStuff(){
switch(Val){
case 1:
// do stuff
case 2:
// do other stuff
default:
// do default
}
}
非常感谢任何提示或解决方案
【问题讨论】:
-
什么是“实习班成员”?
-
会不会和这个有关:stackoverflow.com/questions/92396/…?也许你的静态变量不是罪魁祸首。
-
您的代码缺少详细信息。猜测一下,
do other stuff中的代码是在声明和初始化一个变量。 -
@Lightness Races in Orbin:简单:这是我的静态 int Val int 这个例子
-
@1201ProgramAlarm: 做其他事情只是改变行为,事实上我选择了我的程序从哪里获取值,以及如何处理这些值,假设情况 1:我将值相乘,然后案例 2 我只是添加给定的值。事实上,我只是不想在每次调用方法时都传递 case 值,所以我尝试了这种方法,使用类的静态 int Val 作为 case 值。
标签: c++ class int switch-statement constants