【c++三大特性之一】---多态及其实现原理

来源:互联网 发布:数控打圈机编程视频 编辑:程序博客网 时间:2024/06/05 12:05

一、多态的总体认识:

多态就是多种形态是指不同的对象调用同一种方法,产生不同的行为;
C++的多态分为静态多态动态多态

(1) 静态多态又叫做静态联编,静态绑定,静态决议——–就是重载,因为是在编译期决议确定(即在编译期间将函数的调用和函数定义绑定在一起),所以称为静态多态。
http://blog.csdn.net/gogogo_sky/article/details/72807123

(2) 动态多态又叫做动态联编,动态绑定,动态决议——–就是通过继承重写基类的虚函数实现的多态,因为是在运行时决议确定(即在程序运行时才将函数的调用和函数定义绑定在一起),所以称为动态多态。

本篇文章主讲动态多态

二、动态多态

(1)只有在公有继承的继承方式下才能实现多态;

(2)多态实现的条件:

  1. 子类中重写父类的虚函数;
  2. 父类的指针或者引用调用重写的虚函数;

(3)多态是为了让程序更加灵活;

(4)多态实现的原理:子类对象中重写父类虚函数表中重写虚函数的地址;

(5)一个对象访问普通成员函数和虚函数那个更快?
答:访问普通函数更快;因为是静态联编,在程序编译时,就将函数调用和函数定义联系在一起;而虚函数的调用时是动态联编,要在运行的时候通过虚函数表寻找虚函数的地址来调用虚函数;

原创粉丝点击