虚函数是子类覆盖父类吧,那这个不应该是b覆盖了A::fun()变成B::fun()么

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

img

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

请理解继承的意义,这里不是虚继承,只是继承的话,父类也是可以单独去使用的。
也就是说,你如果定义了b是a的子类,只是说b继承了一些a的方法,以及b可以重新实现a的一些方法。
但是,在使用的时候,你依然是可以使用a类,也可以使用b类
你如果使用a类创建对象,那执行的就是a对应的方法,
你如过使用b类创建对象,如果b中没有实现一些方法,可以继承执行a类的,已经实现的,就调用自己b类的,是覆盖了a类中的方法
注意,这里有一个前提,你创建的对象是按照父类a,还是子类b创建对象,如果用子类b,才会执行子类b中的相关方法,也就是你理解的覆盖相关方法。
但是如果是子类a,那只能调用该类提供的相关方法~
注意这个题目,p是一个指向类a对象的指针!!!

A类是父类
p指向的是A类(父类),就是只使用A类, 和派生的B类没关系
p->A::fun()就是调用A类的fun()

这就是个语文题,你没读懂题是根本没法往下做的
好好注意这几个的区别:
p是A类的指针,但它指向了B类对象
p是A类的指针,指向的是A类对象
p是B类的指针,指向的是B类对象

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632