c++重要特性之一 :多态

    科技2025-12-24  18

    虚函数和多态

    虚函数 在类的定义中,前面有virtual 关键字的成员函数就是虚函数。 class base { virtual int get();

    }; int base:: get(){};

    与普通函数的差别: 虚函数可以参与多态,普通函数不行。

    多态 表现形式一: 1,子类(派生类)的指针可以赋值给基类指针(父类指针); 2,通过父类指针调用父类和子类中的同名虚函数时: 若该指针指向一个父类的对象,那么被调用的是父类的虚函数。 若该指针指向一个子类的对象,那么被调用的是子类的虚函数。

    class Cbase{ publicvirtual void some(); }; class CDerivedpublic Cbase{ publicvirtual void some(); //他会调用这个 }; int main(){ CDerived ODervied; Cbase *p =&ODervied; //由于&ODervied的存在,所以他会调用子类的虚函数 p->some(); //这是调用的子函数的虚函数。调用哪个虚函数取决于p指向 //哪个类的对象 return 0; }

    表现形式二: 1):子类的对象可以赋值给基类引用。 2):通过父类引用调用父类和子类的同名虚函数时: 若该引用 引用的是父类的对象,则调用父类的虚函数。 若该引用 引用的是子类的对象,则调用子类的虚函数。

    class Cbase{ publicvirtual void some(); }; class CDerivedpublic Cbase{ publicvirtual void some(); //他会调用这个 }; int main() { CDerived ODervied; Cbase & r= ODervied;//引用了子类对象 r.some();//这是调用的子函数的虚函数。调用哪个虚函数取决于r引用 //哪个类的对象 return 0; }

    多态的作用

    在面向对象的程序设计中使用多态,能够增强程序的可扩充性,即程序需要修改或增加功能的时候,需要改动或新增的代码少。

    Processed: 0.020, SQL: 9