用于存储具有不同模板值的对象的数组

时间:2014-06-10 10:39:39

标签: c++ arrays class templates abstract

我将课程list定义为:

template <typename T> class list
{
  (...) code
};

然后是另外两个派生自它的类:

class integer_list : public list<int>
{
  //it has methods specialized for working with integer numbers
};

class char_list: public list<char>
{
  //it has methods specialized for working with strings - a sort of enhanced string class
};


我希望将这两个派生类的向量组合起来。我只能想到只用一个纯虚方法创建一个基类。像这样:

class base_class
{
  public:
    virtual ~base_class() = 0;
};

因此,应以这种方式定义list类:

template <typename T> class list : public base_class
{
  (...) code
};

然后,声明一个base_class指针数组将允许我存储不同类型对象的地址,例如integer_listchar_list


问题是:有没有其他方法可以做同样的事情?也许做得更好?

0 个答案:

没有答案