向上类型转换:请看如下代码
class base
{
public:
void f()
{
cout<<"base:"<<endl;
}
};
void play(base&i)
{
i.f();
}
class D : public base
{
public:
void f()
{
cout<<"D:--"<<endl;
}
};
int main()
{
D d;
play(d);
return 0;
}
它的输出结果是:base: 这种情况称为向上类型转换,同时它也是早捆绑;
如果在基类(base类)中void f()前加上virtual;它就会输出“D:–”,达到我们想要的目的;这就是晚捆绑(动态捆绑)