如果我有基类Card
。现在我有一个名为DeckOfCard
的类,其中包含几张卡片:
class DeckOfCard
{
private:
vector<Card> deck;
//....
}
但是,我真正想做的是让DeckOfCard
持有一组Card
派生类,这可能是某种特定的卡片类型,例如扑克牌。
我在Java中知道,我们可以这样做:
public class DeckOfCard <T extends Card>
{
private ArrayList<T> deck;
//...
}
如何在C ++中执行此操作?谢谢你的建议。 : - )
答案 0 :(得分:2)
使用指向父类的指针,即Card*
。
class DeckOfCard
{
private:
vector<Card*> deck;
//....
}
假设您有一个公共继承自PokerCard
的班级Card
,则以下语句有效。
PokerCard *pcard = new PokerCard();
deck.push_back(pcard);