C++ 为什么要使用继承?为什么要使用动态绑定?为什么要使用虚函数?

继承和动态绑定对程序的编写有两方面的影响:
  使用继承,我们可以更容易地定义与其他类相似但不完全相同的新类;
  使用动态绑定,可以在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象。
—————————————————————————————————————————————————
  通过使用动态绑定,我们能用同一段代码分别处理基类和派生类们的对象。在C++语言中,当我们使用基类的引用(或指针)调用一个虚函数时将发生动态绑定。动态绑定,又称运行时的绑定,顾名思义,即在程序运行时选择调用哪个版本(对象)的虚函数。

  有虚函数,程序就可以在运行阶段做决定到底选择哪个版本的虚函数;没有虚函数,程序就会在编译阶段静态绑定(不做选择)。那个为什么要大费周章地使用动态绑定、使用虚函数呢?这样是为了能使用同一段代码(一个函数,函数的形参有基类的引用或指针),用来处理很多的类(基类和其派生类们)的对象。

  设想一下,如果没有虚函数,每个基类的派生类都定义自己独立的net_price(返回书籍的实际销售价格的成员函数),那么就不可能设计同一段代码(同一个函数)来调用所有的类的对象的net_price(类外函数的形参是设成基类的引用(或指针)呢?还是哪个派生类的引用(或指针)呢?)

  所以通过继承和动态绑定(使用虚函数)这两大法宝,可以实现以统一的方式,自如地调用各种类的对象,使我们能够编写具有特定类型行为但又独立于类型的程序。这种统一的美学,是必须要追求的。

  注:在C++中,动态绑定只

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值