如果我只知道C ++中的基类,如何包含派生类

时间:2014-04-27 02:54:06

标签: java c++ inheritance

如果我有基类Card。现在我有一个名为DeckOfCard的类,其中包含几张卡片:

class DeckOfCard
{
    private:
         vector<Card> deck;
         //....
}

但是,我真正想做的是让DeckOfCard持有一组Card派生类,这可能是某种特定的卡片类型,例如扑克牌。

我在Java中知道,我们可以这样做:

public class DeckOfCard <T extends Card>
{
    private ArrayList<T> deck;
    //...
}

如何在C ++中执行此操作?谢谢你的建议。 : - )

1 个答案:

答案 0 :(得分:2)

使用指向父类的指针,即Card*

class DeckOfCard
{
    private:
         vector<Card*> deck;
         //....
}

假设您有一个公共继承自PokerCard的班级Card,则以下语句有效。

PokerCard *pcard = new PokerCard();
deck.push_back(pcard);