Virtual destructor necessity 2

What happens when you delete a derived-class object through a base-class pointer, and the base class has a non-virtual destructor?

A

Compilation error.

B

Only the derived class destructor is called.

C

Both destructors are called in the correct order.

D

Only the base class destructor is called (undefined behavior, likely a resource leak).