【C++】多态性(函数重载与虚函数)

  多态性就是同一符号或名字在不同情况下具有不同解释的现象。多态性有两种表现形式:

  • 编译时多态性:同一对象收到相同的消息却产生不同的函数调用,一般通过函数重载来实现,在编译时就实现了绑定,属于静态绑定。
  • 运行时多态性:不同对象在收到相同消息时产生不同的动作,一般通过虚函数来实现,只有在运行时才能实现绑定,属于动态绑定。

虚函数

  虚函数是在基类中用关键字virtual 标识的成员函数,可以在一个或多个派生类中被重新定义。如果一个函数被定义为虚函数,那么,即使是使用指向基类对象的指针来调用该成员函数,也能保证所调用的是正确的特定于实际对象的成员函数。这正是虚函数的优点所在。

  一旦基类的成员函数被定义成了虚函数,则该基类的派生类的同名成员函数(名字、返回值类型、参数个数及类型均相同)不管前面是否加关键字virtual ,同样也具有虚特性,同样是虚函数。定义虚函数语法格式如下:

    class <类名>    {      virtual <返回值类型><函数名>(<形参表>);    };

  虚函数机制:如果通过引用或指针访问虚函数,编译时就不会确定具体的调用函数,只有在运行时才根据具体的对象类型,调用其相应的函数实现。注意:虚函数的“动态绑定虚特性”必须通过基类的指针挥着基类的引用才能够表现出来,通过对象调用虚函数不能进行动态绑定。

上一篇:python之路4


下一篇:nginx中ngx_http_core_module模块