When a derived class is constructed, first the constructor of the base class runs, then the constructor of the derived class.Having several destructors using polymorphisms and that way still having the "standard" destructor which would be the one used for automatic calls?
When a derived class is destructed, first the destructor of the derived class runs, then the base class is destructed.
When you have a polymorphic object (pointer to base), the destructor of base must be virtual, otherwise only the base destructor is called, but not the destructor of derived class.
That is, you don't pick which parts of a derived class will be destructed and which not. You'll need to destruct the whole object and several destructor calls happen for that.