虚继承?
什么叫虚继承?
我的理解是:
1
2.1 2.2
3
继承关系如上,假如不是虚继承,那么2.1和2.2中都会继承到1中的公共成员,但是如果2.1和2.2都不需要用到这些成员,就相当于有了两份备份,就增加了多余的内存,会冗杂。所以呢在继承的时候,加上virtual,就避免这个情况了。这样3除了在2.1和2.2继承了它们新增的成员,独立的、不依靠2这一层,继承到了基类1中的public成员。
Description
长期的物种进化使两栖动物既能活跃在陆地上,又能游动于水中。利用虚基类建立一个类的多重继承,包括动物(animal,属性有体长,体重和性别),陆生动物(ter_animal,属性增加了奔跑速度),水生动物(aqu_animal,属性增加了游泳速度)和两栖动物(amp_animal)。其中两栖动物保留了陆生动物和水生动物的属性。
Input
两栖动物的体长,体重,性别,游泳速度,奔跑速度(running_speed)
Output
初始化的两栖动物的体长,体重,性别,游泳速度,奔跑速度(running_speed)和输入