Looking for an answer for C# and C++. (in C#, replace \'destructor\' with \'finalizer\')
The destructor of the class still being constructed is not called, because the object was never fully constructed.
However, the destructor of its base class (if any) IS called, because the object was constructed as far as being a base class object.
Moreover, any member variables will have their destructors called too (as others have noted).
NB: this applies to C++