我将课程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_list
和char_list
。
问题是:有没有其他方法可以做同样的事情?也许做得更好?