0

と という 2 つのクラスがCollectionAありCollectionB、両方とも から継承していCollectionます。Collection属性を持っていstd::array<GenericType>ます。タイプ( )の要素を継承し、 . を含むCollectionAコレクションとして使用したいと考えています。これは可能ですか? もしそうなら、どうすればこのデザインを実装できますか?std::arrayClassAstd::array<ClassA>CollectionBstd::array<ClassB>

注: この問題にテンプレートが必要な場合、私はテンプレートに精通していません。

EDIT :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 に答える