我有两个类,比如CollectionA
和CollectionB
,都来自Collection
。 Collection
具有std::array<GenericType>
属性。我想将CollectionA
用作集合,其继承的std::array
包含ClassA
(std::array<ClassA>
)和CollectionB
类型的元素,其中包含std::array<ClassB>
。这是可能的,如果可以的话,我该如何实现这个设计呢?
注意:如果模板需要,我不熟悉模板。
编辑:Collection
是用户定义的,因此我不会直接继承std::array
答案 0 :(得分:2)
模板将是明显的解决方案,从
开始template<typename Element>
class Collection
{
protected:
std::array<Element> arrr_;
};
class CollectionA : public Collection<ClassA>
{
};
class CollectionB : public Collection<ClassB>
{
};
希望它有所帮助...
答案 1 :(得分:1)
将它们定义为
class ContainerA : public Container<ClassA> {...};
class ContainerB : public Container<ClassB> {...};
答案 2 :(得分:0)
template <class T>
class Collection {
protected:
std::array<T> data_;
};
class CollectionA : public Collection<A> {
/*
you can use data_ in this class.
data_ will be of type std::array<T>;
*/
};