Virtual function是C++用于派生类成员函数重载(override)基类成员函数的技术手段,它充分体现了面向对象思想中的继承和多态性这两大特性,在C++语言里应用极广。
当你用一个基类指针或引用指向一个继承类对象的时候,调用一个虚函数,实际调用的是继承类的版本,如下图所示,基类指针 pc调用的GetName函数,是继承类derive的版本。
BTW:"->" is short for dereferencing and dot, instead (*pc).GetName(), you can use arrow like pc->GetName().
参考文献《Virtual Function in C++》