I implemented a simple test to check the memory rank of Derived class, so I find there are two virtual destructor address in the virtual table of Derive class. Can someone expla
This must be specific case to your compiler, I did the same in g++ and result only one destructor call only.
~Derive
~Base2
~Base1
link to results: https://ideone.com/vzZggh
yes, for non-virtual member functions you need to go to base class.
Non-virtual function address does not exist in the memory of the derived class.