多态性 C++思想

当处理类型层次结构时,程序员常常希望不把对象看作是某一特殊类型的成员,而把它看作基本类型成员,这样就可以编写不依赖于特殊类型的代码

在形体例子中,函数可以对一般形体进行操作,而不关心它们是圆、正方形还是三角形。

所有的形体都能被绘制、擦除和移动,所以这些函数能简单地发送消息给一个形体对象,而不考虑这个对象如何处理这个消息。

新添类型不影响原来的代码,这是扩展面向对象程序以处理新情况的最普通的方法。
例如,可以派生出形体的一个新的子类,称为五边形,而不必修改那些处理一般形体的函数。
通过派生新子类,很容易扩展程序,这个能力很重要,因为它极大地减少了软件维护的花费。

(所谓“软件危机”正是由软件的实际花费远远超出人们的想象而产生的。)

为了实现晚捆绑,编译器在真正调用的地方插入一段特殊的二进制代码。通过使用存放在
对象自身中的信息,这段代码在运行时计算被调用函数的地址(这一问题将在第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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值