0

我有两个类,比如CollectionAand CollectionB,它们都继承自 a CollectionCollection有一个std::array<GenericType>属性。我想CollectionA用作一个集合,其继承的std::array包含类型ClassA( std::array<ClassA>) 的元素并CollectionB包含一个std::array<ClassB>. 这可能吗?如果可以,我该如何实现这个设计?

注意:如果此问题需要模板,我不熟悉模板。

编辑Collection是用户定义的,所以我不是直接继承自std::array

4

3 回答 3

2

模板将是显而易见的解决方案,从

template<typename Element>
class Collection
{
protected:
    std::array<Element> arrr_;
};

class CollectionA : public Collection<ClassA>
{
};

class CollectionB : public Collection<ClassB>
{
};

希望能帮助到你...

于 2013-03-19T19:34:53.163 回答
1

像这样定义它们

class ContainerA : public Container<ClassA> {...};
class ContainerB : public Container<ClassB> {...};
于 2013-03-19T19:35:01.200 回答
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>;
   */
  };
于 2013-03-19T19:36:25.917 回答