请理解继承的意义,这里不是虚继承,只是继承的话,父类也是可以单独去使用的。
也就是说,你如果定义了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类对象