声明为虚函数后,成功的调用了我们重写的Put函数。这就是虚函数的一个超典型的作用。在面向过程的C语言中,在需要框架、类库回调我们自定义的函数的时候,往往是传入一个函数指针,让框架回调。在面向对象的C++中,为了实现同样的目的,框架往往准备好了什么也不干的虚函数,由我们派生后重写这个虚函数,来实现我们的自定义功能。随后,框会调用这个虚函数。效果如图面向过程语言中的回调。
为什么要用虚函数?什么时候用虚函数?