其他分享
首页 > 其他分享> > 虚函数的使用

虚函数的使用

作者:互联网

虚函数的使用

#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