我有一个类使用一些回调来进行计算.那些回调需要分配需要在回调范围之外生存的数据(动态数组),而不是在类破坏之后.我想过当一个类破坏时vector,auto_ptr它会自动被破坏:
class MyClass
{
vector<auto_ptr<MyObject>> ThingsToDie;
};
Run Code Online (Sandbox Code Playgroud)
问题是我分配了很多对象,并且它们不共享基类型,所以我不能使用vector它,并为每种类型制作一个向量是很多工作.
如下所示的层次结构:
auto_ptr_base (virtual destructor)
|
auto_ptr<T>
Run Code Online (Sandbox Code Playgroud)
将解决我的问题,因为我可以做类似的事情
class MyClass
{
vector<auto_ptr_base> ThingsToDie;
};
Run Code Online (Sandbox Code Playgroud)
并且将自动将销毁实际分派给每个专用类型.
问题是STL没有那个层次结构,我不想重新实现auto_ptr.
还有其他解决方案吗?
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |