zoukankan      html  css  js  c++  java
  • 新手讲虚函数:怎么实现多态

    class B0 //基类B0声明
    {public: 
       void display() 
         {cout<<"B0::display()"<<endl;} 
    };
    class B1: public B0 
    { public:
           void display()  {  cout<<"B1::display()"<<endl;  }
    };
    class D1: public B1 
    { public:
       void display() {  cout<<"D1::display()"<<endl;  }
    };

    那么对于上例:因为B1继承了B0,所以其中同名函数就会被B0中的函数覆盖,所以输出时,三个函数都只能输出B0::display();

    但是引入虚函数之后:

    class B0 //基类B0声明
    {public: //外部接口
     virtual void display() //虚成员函数
         {cout<<"B0::display()"<<endl;} 
    };
    class B1: public B0 //公有派生
    { public:
           void display()  {  cout<<"B1::display()"<<endl;  }
    };
    class D1: public B1 //公有派生
    { public:
       void display() {  cout<<"D1::display()"<<endl;  }
    };

    因为定义了虚函数,所以通过指针调用时调用的都是自己类中的成员函数,而不会同名函数只调用基类中的函数,这样增加了多态性

  • 相关阅读:
    python爬取北京政府信件信息03
    Python3.7 lxml引入etree
    python爬取北京政府信件信息02
    python爬取北京政府信件信息01
    2020.12.2收获
    2020.12.1收获
    2020.11.30收获
    2020.11.29收获
    2020.11.28收获
    2020.11.27收获
  • 原文地址:https://www.cnblogs.com/jijiji/p/4840384.html
Copyright © 2011-2022 走看看