Cpp virtual derived class: what it does, the essence of "Virtual"