【发布时间】:2016-02-03 15:49:26
【问题描述】:
我正在尝试为可以在集合中表示的通用数据(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>());
}
上面这样的可能吗?
【问题讨论】:
-
你尝试编译了吗?
-
它对您不起作用还是您遇到了什么问题?另外,不要忘记使用智能指针(例如,
std::vector<std::unique_ptr<Base>>)。 -
在内存泄漏之外,这很好。否则,不清楚您实际上在问什么。
-
不清楚你在问什么,但我觉得从长远来看,
Object类是完全没有必要的。
标签: c++ templates inheritance polymorphism