模板继承的类

Template Inherited Classes

本文关键字:继承      更新时间:2023-10-16

我正在尝试为可以在集合中表示的通用数据(POD 或对象)创建一个包装类。基本上,我有一大组不同类型的数据,我需要添加其他数据(如读/写时间),但我希望能够在 STL 容器中表示这些数据。粗略的例子:

class Base
{
    int lastUpdate;
    void SomeMember();
}
template<class T>
class Object : public Base
{
    T data;
}
int main()
{
    std::vector<Base*> data;
    data.push_back(new Object<int>());
    data.push_back(new Object<OtherClass>());
}

像上面这样的事情可能吗?

这绝对是可能的。你的方法看起来也很正确。基本上定义一个公共基类和一个模板派生类(如代码示例中所示)。

您的示例中唯一缺少的是类定义后面的分号。