虚函数的使用
作者:互联网
虚函数的使用
#include<iostream>
using namespace std;
class B0
{
public:
virtual void print()
{
cout<<"B0::print()"<<endl;
}
};
class B11:public B0
{
public:
virtual void print()
{
cout<<"B11::print()"<<endl;
}
};
class B12:public B0
{
public:
virtual void print()
{
cout<<"B12::print()"<<endl;
}
};
class B2:public B0
{
public:
virtual void print()
{
cout<<"B2::print()"<<endl;
}
};
int main()
{
B0 b0,*p;
B11 b11;
B12 b12;
B2 b2;
int i;
cout<<"Input i(0,11,12,2,else ending!):";
cin>>i;
switch(i)
{
case 0:
{
p = &b0;
break;
}
case 11:
{
p = &b11;
break;
}
case 12:
{
p = &b12;
break;
}
case 2:
{
p = &b2;
break;
}
}
p->print();
cout<<endl;
return 0;
}
/*
Input i(0,11,12,2,else ending!):11
B11::print()
*/
为什么需要虚函数
打个比方,你要去某一地方办事,如果乘坐公交车,必须事先确定目的地,然后乘坐能够到达目的地的公交车线路。如果改为乘出租车,就简单多了,不必查行车路线,因为出租车
什么地 方 都能去,只要在上车后临时告诉司机要到哪里即可。如果想访问多个目的地,只要在到达一个目的地后再告诉司机下一个目的地即可,显然,“打的”要比乘公交车 方便。
无论到什么地方去都可 以乘同—辆出租车。这就是通过同一种形式能达到不同目的的例子。
C++中的虚函数就是用来解决这个问题的。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数
标签:case,函数,使用,break,基类,目的地,公交车 来源: https://blog.csdn.net/hfut31415926/article/details/112103884