为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要传入指针呢?

在flymatch函数中为什么要传入指针呢?

正在回答

2 回答

首先flymatch函数不仅可以传入指针,还可以传入实例化对象。

1、课程中为什么要传入flyable指针呢,是基于基类的引用和指针可以引用子类的对象这一原则,也就是说flyable *p  这个指针既可以引用bird也可以引用plan,这样做的好处后面会说到。

2、那为什么不用flyable p 呢,是因为flyable是纯虚函数,flyable p就是实例化一个flyable的对象p。显而易见,纯虚函数是不能被实例化的,所以flyable p 是非法的。

3、那可以传入什么样的实例化对象呢,bird和plan的实例化对象都可以。但是一旦这样做了就会有一个限制,如果函数中声明的是一个bird的对象,那么这个函数就不能再调用plan的对象了,因为bird和plan是两个完全不同的类,所以函数只能接受bird的对象而不能接受plan的对象,就像一个人如果是男人,那么他肯定不可能是女人。如果想处理plan的对象,那么只能再创建另外一个函数来处理了。

4、事实都不是绝对的,人妖的出现证明了一个人即可以是男人也可以是女人,而flayable *p的出现呢,就是为了让函数即可以调用bird的对象又可以调用plan的对象以及其它flyable的子类对象,这种编程灵活性是所有编程人员所崇尚的。

讲解完毕,如果帮到你请给个好评吧!媳妇非得要那个慕课君抱枕,拼命赚积分ing。。。。。。

9 回复 有任何疑惑可以回复我~
#1

paopaonb 提问者

非常感谢!
2016-01-10 回复 有任何疑惑可以回复我~
#2

vortesnail

你的回答很好,谢谢,也祝你早日换到慕课君抱枕!~
2016-09-24 回复 有任何疑惑可以回复我~

请问您说的是哪一课?传入指针在某种情况下很方便

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66236    人
  • 解答问题       314    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

为什么要传入指针呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信