/**模板方法**用于創(chuàng)建不同的Card實例*/templateT*Create(intcardNum,char*name,char*password,intcardType){returnnewT(cardNum,name,password,cardType);}/**發(fā)卡**傳入?yún)?shù):用戶名*密碼*卡的類型*返回值:卡號*/intBank::CreateCard(char*name,char*password,intcardType){intcardID;if(cardType==1)//借記卡{//cards[CardNum]=newDebitCard(CardNum,name,password,cardType);cards[CardNum]=Create(CardNum,name,password,cardType);}elseif(cardType==2)//貸記卡{//cards[CardNum]=newCreditCard(CardNum,name,password,cardType);cards[CardNum]=Create(CardNum,name,password,cardType);}cardID=1000+CardNum;CardNum++;returncardID;}如上面的代碼所示,起初我是想創(chuàng)建Card的子類對象時去除if/else語句的判斷,所以定義了一個模板,但是調(diào)用模板時候仍然要傳入具體的類型,在CreatCard(...)方法中,注釋部分是之前的代碼。如果我想去除CreateCard(...)方法中的if/else該怎么做呢?如果我用枚舉值,C++中可以通過枚舉字符串值轉(zhuǎn)化為類型嗎?
C++ 如何動態(tài)的創(chuàng)建對象
Qyouu
2019-04-09 20:23:52