多态性 C++思想
来源:互联网 发布:php网页制作教程 编辑:程序博客网 时间:2024/05/20 21:46
当处理类型层次结构时,程序员常常希望不把对象看作是某一特殊类型的成员,而把它看作基本类型成员,这样就可以编写不依赖于特殊类型的代码。
在形体例子中,函数可以对一般形体进行操作,而不关心它们是圆、正方形还是三角形。
所有的形体都能被绘制、擦除和移动,所以这些函数能简单地发送消息给一个形体对象,而不考虑这个对象如何处理这个消息。
新添类型不影响原来的代码,这是扩展面向对象程序以处理新情况的最普通的方法。
例如,可以派生出形体的一个新的子类,称为五边形,而不必修改那些处理一般形体的函数。
通过派生新子类,很容易扩展程序,这个能力很重要,因为它极大地减少了软件维护的花费。
(所谓“软件危机”正是由软件的实际花费远远超出人们的想象而产生的。)
为了实现晚捆绑,编译器在真正调用的地方插入一段特殊的二进制代码。通过使用存放在
对象自身中的信息,这段代码在运行时计算被调用函数的地址(这一问题将在第1 4章中详细介
绍)。这样,每个对象就能根据一个指针的内容有不同的行为。当一个对象接收到消息时,它
根据这个消息判断应当做什么。
程序员可以用关键字v i r t u a l表明他希望某个函数有晚捆绑的灵活性,而并不需要懂得
v i r t u a l的使用机制。没有它,就不能用C + +做面向对象的程序设计。Vi r t u a l函数(虚函数)表
示允许在相同家族中的类有不同的行为。这些不同是引起多态行为的原因。
0 0
- 多态性 C++思想
- C++:多态性
- C++-多态性
- C++---多态性
- C+++多态性
- 【C#】多态性
- C++---------【多态性】之【静态多态性】
- 多态性C++[转]
- 多态性C++[转]
- C++:多态性 (三)
- c/c++中的多态性
- 【C#】C#多态性
- C++_多态性
- 5.2什么是多态性【C++】
- C#教程第九课:多态性
- C#教程 第九课:多态性
- C plus plus 的多态性
- C#教程第九课:多态性
- 修改Tomcat默认web路径
- 网上看到的腾讯面试笔试题部分解析
- cocos2d-x 数学函数、常用宏粗整理
- Cocos2d-x v3.0 新的事件调度方法 lambda表达式的使用
- poj 3628 Bookshelf 2 01背包
- 多态性 C++思想
- 数塔问题
- JSP运行原理、文档结构、简单输入输出
- Xml解析天气预告
- COM笔记-QueryInterface函数 入门
- Mybatis-Spring实现原理
- 2014年4月27日周总结(1)
- ModelDriver
- Android开发实例 简单拨打电话