此代碼中的switch語句不起作用。它應該定義(全局)變量x,如果用戶按下1,則爲類A的實例,如果用戶按下2,則將變量x定義爲類B的實例。如果用戶按下1,則打印A,如果按下2,則打印B.我想使用「x.print()」語句,其中x是A類或B類,具體取決於輸入。根據用戶輸入打印字符串
#include <iostream>
using namespace std;
class A{
public:
void print(){cout<<"A";}
};
class B{
public:
void print(){cout<<"B";}
};
int main() {
int choice;
cout<<"Press 1 to print A\nPress 2 to print B\n";
cin>>choice;
//I know the following does not work, it's just to show what I want to do
switch (choice){
case 1: A x;
break;
case 2: B x;
break;
}
x.print();
return 0;
}
你不能在switch語句中聲明x。它完成時超出範圍,x變得未定義。 – Amadeus
是的,我知道。它只是爲了展示我想要做的事情。 – Slazer
您需要說超過「此代碼已損壞」。請說明你看到了什麼錯誤。另外,如果你已經知道你的例子是錯誤的,因爲'x'超出了範圍,那麼你需要展示一個沒有這個問題的更好的例子。 – lurker