Say we have the following two classes, A is the base class with virtual destructor and B is the derived class whose destructor doesn't have 'virtual' qualifier. My question is, if I going to derive more classes from B, will B's destructor automatically inherit the virtualness or I need to explicitly put 'virtual' before '~B() {...}'
class A { public: A() { std::cout << "create A" << std::endl;}; virtual ~A() { std::cout << "destroy A" << std::endl;}; }; class B: A { public: B() { std::cout << "create B" << std::endl;}; ~B() { std::cout << "destroy B" << std::endl;}; };