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(如果它有效)時,該怎麼辦?基本上,程序實例化一個對象,取決於菜單中選擇的內容。一旦一個對象被創建,構造函數被調用,並且構造函數調用另一個函數,等等......基本上,在while循環中創建一個新對象。由於我在代碼中沒有得到很多反饋,上面的實現會被認爲是「糟糕的編程」嗎?初學者C++:爲什麼這個switch語句給我一個錯誤?
謝謝!
編輯:錯誤是:
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;
錯誤明確指出'跳過繞過變量初始化' – NathanOliver
錯誤消息(而不是一個警告)告訴你**完全**有什麼問題。 – IInspectable
您可以將每個初始化設置在一個範圍內以擺脫警告。 – drescherjm