【发布时间】:2016-01-12 01:31:26
【问题描述】:
假设我有来自A 的纯类A 和B、C、D 等。是否可以从A 的析构函数中知道哪个派生类正在被销毁?
【问题讨论】:
-
我猜你的意思是自动的,也就是编译器会告诉你? “手动”解决方案是添加一些存储最派生类型的数据成员,例如
type_info const&. -
没有。至此,所有派生部分都消失了。为什么需要这个?
-
我想知道您是否可以通过将基本析构函数标记为虚拟并覆盖每个派生类中的析构函数来达到相同的目的
-
@Jimmy:析构函数在这方面很特别,因为覆盖 B::~B 仍然会调用 A::~A。回到A::~A,你不知道你从哪里来。
标签: c++ inheritance destructor