关于virtual destructor的实现:
也是用vtable实现的吗?
base class 和derived class 的virtual destructor 是不会override each other的
吧,所以在delete base class pointer to derived class object时,两个
destructor都会被call,
这样说对不对?
f****4 发帖数: 1359
2
virtual destructor就是干这个活的
下次,你可以自己写个代码检验一下
#include
class A{
public:
virtual ~A()
{
printf("A::~A\n");
}
};
class B: public A
{
public:
virtual ~B()
{
printf("B::~B\n");
}
};
int main()
{
A *p = new B();
delete p;
printf("=====\n");
B b;
A &a = b;
}