Destructor fires when…
* AFTER subclass destructor [ISA]
* stackVar going out of scope (automatically destroyed — A U T O variable
** special case — exceptional stack unwinding
** special case — cascading delete — Host object destructor [HASA]
Now, in the ISA situation all destructors should be virtual, so how does the parent destructor fire? Boris told me child destructor doesn’t need explicit call to parent destructor. System guarantees all destructor fire from descendants to ancestors.