Tôi có một chương trình đơn giản:Tại sao destructor của lớp dẫn xuất được gọi là?
struct B
{
virtual ~B() {}
};
struct D : public B
{
~D() {}
};
Vì vậy, khi tôi gọi
B* b = new D;
b->~B();
tại sao destructor của lớp được thừa kế được gọi là? Đó là ảo nhưng chúng ta gọi là destructor theo tên, hoặc là có một tên ẩn của destructor đó là như nhau cho tất cả các lớp học?