虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行动态联编,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。多态指同一个方法根据其所属的不同对象可以有不同的行为。
虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数
1、录入下面程序,并分析结果:
#include <iostream>
#include <complex>
using namespace std;
class Base
{
public:
Base() {
cout<<"Base-ctor"<<endl;}
~Base() {
cout<<"Base-dtor"<<endl;}
virtual void f(int){
cout<<"Base::f(int)"<<endl;}
virtual void f(double){
cout<<"Base::f(double)"<<endl;}
virtual void g(int i=10){