<分区>
int menuDecision = displayMenu();
//WHILE USER DOESN'T SELECT QUIT
while(menuDecision != 3){
/*
if(menuDecision == 1){
Queue myQueue;
}
else{
Stack myStack;
}
*/
switch(menuDecision){
case 1: Queue myQueue;
break;
case 2: Stack myStack;
break;
}
menuDecision = displayMenu();
}
为什么当我将上面的代码作为 switch 语句运行时它给我一个错误,但是当我使用 if/else-if 时它有效?基本上,程序根据菜单中选择的内容实例化一个对象。创建对象后,将调用构造函数,构造函数将调用另一个函数,依此类推……基本上,在 while 循环中每次通过时都会创建一个新对象。由于我的代码没有得到很多反馈,上述实现是否会被视为“糟糕的编程”?
谢谢!
编辑:错误是:
main.cpp:27:4: error: cannot jump from switch statement to this case label
case 2: Stack myStack;
^
main.cpp:25:18: note: jump bypasses variable initialization
case 1: Queue myQueue;