如果我只知道C++中的基类,如何包含派生类
How to contain a derived class if I only know base class in C++
如果我有一个基类Card
。现在我有一个名为DeckOfCard
的类,它包含几个卡:
class DeckOfCard
{
private:
vector<Card> deck;
//....
}
然而,在这里,我真正想做的是让DeckOfCard
持有一组Card
的派生类,这可能是一些特定的卡类型,例如扑克。
我知道在Java中,我们可以做到这一点:
public class DeckOfCard <T extends Card>
{
private ArrayList<T> deck;
//...
}
我如何在C++中做到这一点?谢谢你的建议。:-)
使用指向父类的指针,即Card*
。
class DeckOfCard
{
private:
vector<Card*> deck;
//....
}
假设您有一个从Card
公开继承的类PokerCard
,那么下面的语句是有效的。
PokerCard *pcard = new PokerCard();
deck.push_back(pcard);
相关文章:
- 如果基类包含双指针成员,则派生类的构造函数
- 限定的依赖名称查找,其中包含基类的注入类名
- 如何从包含基类指针的容器中调用派生类函数(基于其类型)?
- 在C++中,为什么仅包含与其基类实例的联合的派生类占用的内存多于联合的大小?
- 如果类包含基类的成员,编译器是否可以利用空基优化?
- 如果类包含基类类型的成员作为第一个元素,后跟其他成员,编译器是否可以优化空基?
- 如果我在不同的类中包含基类,是否也会包含该基类的派生类
- 在派生类的成员联合中包含继承的基类成员
- 类是否可以包含基类作为成员,该基类稍后专用于派生类
- 如果派生类包含其他方法和成员,则可以static_cast从基类到派生类
- 如何让子类包含指向基类的指针
- 如何查找多态基类向量中包含的对象的类型?
- 类包含指向基类的指针,但我不希望它。(C++)
- 派生自包含成员的类,其模板参数是基类
- 包含派生类型的指针的基类
- 如何制作一个既可以包含基类又可以包含派生类的列表
- 我需要制作一个包含基类和派生类的对象的向量,并知道哪个元素是哪个元素
- 派生类对象是否包含基类的私有成员?它在记忆中是什么样子的
- C++03 12.4/12对通过指针显式调用基类析构函数有何说明
- 当基类不包含数据成员时,虚拟继承是否仍然是必要的