回复: 为什么会crash? virtual dtor语义上需要实现的就是:销毁基类指针时会调用实际所指向对象的dtor,之后的析构过程和普通对象的析构过程相同,这些C++ Primer或者TCPL上都有将的。我个人觉得最好不要管vtbl是怎么运作的,这些都应该被隐藏在编译器实现里,程序员只要管好语义正确就可以。
另外CleanupManager的清理方式有些奇怪,照理Interface不过提供了一些使用的接口函数,为什么要作为一个CleanItem存储到CleanupManager,难道这些结构提供的都是销毁功能的接口? |