gpt4 book ai didi

c++ - 在类中的一个方法的 switch 语句中使用在类中声明的 int

转载 作者:行者123 更新时间:2023-11-30 01:41:03 25 4
gpt4 key购买 nike

我收到错误 “this cannot be used in a constant expression.” 我正在尝试做的应该是一项非常简单的任务。我希望能够做的就是在类中方法内的 switch 语句中使用在类中声明的变量。例如:

在类里面

private:
int someValue;

在类构造函数中

Classname::ClassName(){
someValue = 1;

}

方法中

ClassName::someMethod(){
int command = getCommandNumber();

switch (command){
case someValue:
doSomeStuff();
break;


}


}

在方法中,如果我将 someValue 替换为数字 1,一切正常;但是,如果我使用 someValue,它不会编译,并且会出现上述错误。我该如何解决这个问题?

最佳答案

switch 语句 中的case labels 需要编译时已知的常量。 someValue 必须与 constexpr 的顺序相同;或一些 prvalue 常量;或 enumenum class 。如果您必须使用运行时条件,请使用 if-else 阶梯。

ClassName::someMethod(){
int command = getCommandNumber();
if(command == someValue)
doSomeStuff();
else if(command == ...)
....
}
}

关于c++ - 在类中的一个方法的 switch 语句中使用在类中声明的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com