问题描述
我有一个基类 Card 和一个派生类 SkillCard,声明如下:
class SkillCard : public Card
{
private:
int skillType;
int numberValue;
public:
SkillCard();
SkillCard(int x,string z,int y,int w);
};
当卡片被声明时:
class Card
{
public:
string name;
int manaCost;
Card();
string printCard();
Card(string x,int y);
};
我在牌组中存储了不同类型的卡片(最终会有 AttackCard、PowerCard 等),因此卡片在牌组中存储为:
SkillCard increaseCard(0,"Increase Strength",0.05,5);
userDeck.addCard(increaseCard,1);
userDeck 是deck 类的对象,声明为:
class Deck
{
private:
int size;
Card* deck = new Card[1];
public:
Deck();
Deck(int x);
void addCard(Card toAdd,int place);
Card getCard(int place);
void setSize(int x);
int getSize();
void changeDeck();
void deleteDeck();
};
然而,当我尝试从牌组中返回一张卡片时出现问题,如 SkillCard returned = userDeck.getCard(1);
那样,因为它返回的是卡片类型。我可以将此返回的 Card 类型转换为 SkillCard 吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)