鱼C论坛

 找回密码
 立即注册
查看: 2353|回复: 1

虚函数的问题,不甚明白,求解~

[复制链接]
发表于 2020-3-2 12:53:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在学习小甲鱼的虚函数课程中,不甚明白,求助:

图片是小甲鱼的例子,不明白的就是,为什么不能用:

Cat *cat = new Cat("加菲")
而要用:
Pet *cat = new Cat("加菲")

如果用第一种,就无需虚函数也能正确的表达play了啊?
为什么要用Pet 类去声明却new了Cat类?
为什么不用Cat 类去声明new一个Cat类?

然后还多了个用虚函数的问题,作为初学者实在找不到理由,求大神们解答~
批注 2020-03-02 124721.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-6 08:08:20 | 显示全部楼层
我只是稍懂一些(毕竟学了没多长时间)可以作为参考
第一:参考百度百科上的一个例子
https://baike.baidu.com/item/%E8 ... /2912832?fr=aladdin

中间有这样一句话或许能解答你的疑惑(输出结果部分):
“可以看出这两个类因个体的差异而采用了不同的策略,但这并不是多态性行为(使用的是不同类型的指针),没有用到虚函数的功能。”

******如果使用不同类型的指针来实现的话,对现实中的维护会增加麻烦******

总结了一下虚函数的优缺点:
优点:可以提高可维护性(多态前提所保证的),提高代码的可扩展性
缺点:无法直接访问子类特有的成员

当然这是一个思路 具体可能有些出入
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-6 19:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表