怀疑使用对象池

时间:2011-07-07 10:03:00

标签: c++

我在考虑使用boost :: object_pool,但要存​​储的对象类型都在同一层次结构中。我的问题是如何存储和使用池将每个对象转换为所需的类型。

我的客户将祖先存储为池的类型,然后将返回的对象与dinamyc转换为正确的类型。

它是对象池的最佳选择吗?

需要一些方向:) 提前致谢

编辑:大家都是对的。我在想传统的铸造newObj =(newType)oldObj。遗憾。

2 个答案:

答案 0 :(得分:2)

要存储多态对象,惯用解决方案是在基于值的容器中存储基类的指针。

您按值存储多态对象的当前解决方案不起作用,因为它受slicing的影响。 boost object pool只不过是一个奇特的分配器和解除分配器,它不提供多态性。

答案 1 :(得分:1)

boost :: object_pool主要用于分配相同类型的大量对象。您不应将它们用于对象层次结构。