【c++三大特性之一】---多态及其实现原理
来源:互联网 发布:数控打圈机编程视频 编辑:程序博客网 时间:2024/06/05 12:05
一、多态的总体认识:
多态就是多种形态,是指不同的对象调用同一种方法,产生不同的行为;
C++的多态分为静态多态和动态多态。
(1) 静态多态:又叫做静态联编,静态绑定,静态决议——–就是重载,因为是在编译期决议确定(即在编译期间将函数的调用和函数定义绑定在一起),所以称为静态多态。
http://blog.csdn.net/gogogo_sky/article/details/72807123
(2) 动态多态:又叫做动态联编,动态绑定,动态决议——–就是通过继承重写基类的虚函数实现的多态,因为是在运行时决议确定(即在程序运行时才将函数的调用和函数定义绑定在一起),所以称为动态多态。
本篇文章主讲动态多态
二、动态多态
(1)只有在公有继承的继承方式下才能实现多态;
(2)多态实现的条件:
- 子类中重写父类的虚函数;
- 父类的指针或者引用调用重写的虚函数;
(3)多态是为了让程序更加灵活;
(4)多态实现的原理:子类对象中重写父类虚函数表中重写虚函数的地址;
(5)一个对象访问普通成员函数和虚函数那个更快?
答:访问普通函数更快;因为是静态联编,在程序编译时,就将函数调用和函数定义联系在一起;而虚函数的调用时是动态联编,要在运行的时候通过虚函数表寻找虚函数的地址来调用虚函数;
阅读全文
0 0
- 【c++三大特性之一】---多态及其实现原理
- OC三大特性之一:多态的介绍
- Java 浅析三大特性之一多态
- 面向对象语言Objective-C三大特性之一--封装
- 黑马程序员——java三大特性之一多态
- 面向对象三大特性之一:多态
- Java 浅析三大特性之一封装
- Java 浅析三大特性之一继承
- 继承----C++的三大特性之一
- 继承 -----C++三大特性之一
- Java三大特性之一封装
- c++三大特性之一 --- 继承小解
- java-三大特性之一封装性
- java-三大特性之一继承
- 继承----C++的三大特性之一
- java三大特性之一(多态)
- 面向对象三大特性之一 多态
- java的三大特性之一重写
- 2017-4-18 CCCC决赛总结
- 【Android 视频,音频开源框架】
- Android开发自定义View
- 算法题101-红黑树(阿里笔试题)
- Apach Zepplein使用Livy解释器中文不能被解析问题
- 【c++三大特性之一】---多态及其实现原理
- 极光推送 使用Demo(服务器)希望对你有帮助
- 日期、时间选择对话框
- int 和 Integer 区别
- Spring Framework之IOC容器的扩展点(TODO)
- 部署kafka以及配置文件详解
- POJ-3186 Treats for the Cows
- 段、栈与局部变量、全局变量、静态变量
- android 获取屏幕像素为 1920x1016的原因