您的位置:首页 > 编程语言 > C语言/C++

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

2017-06-14 21:15 567 查看

一、多态的总体认识:

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

C++的多态分为静态多态动态多态

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

http://blog.csdn.net/gogogo_sky/article/details/72807123

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

本篇文章主讲动态多态

二、动态多态

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

(2)多态实现的条件:

子类中重写父类的虚函数;

父类的指针或者引用调用重写的虚函数;

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

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

(5)一个对象访问普通成员函数和虚函数那个更快?

答:访问普通函数更快;因为是静态联编,在程序编译时,就将函数调用和函数定义联系在一起;而虚函数的调用时是动态联编,要在运行的时候通过虚函数表寻找虚函数的地址来调用虚函数;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: