Advertisement

C++ 虚继承(特性)

阅读量:

虚继承

首先, 虚继承和虚函数是完全无相关 的两个概念

多重继承(Multiple Inheritance)是从多个直接基类生成派生类的能力,在这种情况下所生成的派生类自动生成并拥有各个基类的所有成员。虽然在概念上看似简单易懂,在实际应用中由于各个基类之间的相互交织可能会导致错综复杂的系统架构设计问题。其中必然存在的一个问题是名称上的冲突。


如何掌握虚 inheritance 的概念?由于上一节中的多 inheritance 示例程序存在潜在的问题:

在多继承的情况下容易出现名称冲突的问题。即便我们尽力确保所有类中的成员变量与成员函数名称互不相同,在实际应用中这种问题仍有可能发生。例如典型的菱形继承现象发生在当多个基类共享同一个接口时

在这里插入图片描述

当发生如:类B继承自类A、类C也继承自类A、而类D同时继承自了两类别B与C的情况下,则此时在类别A中的变量成员与函数成员会分别被分配到两个不同的位置 ,一份源自于路径 A→B→D ,另一份源自于路径 A→C→D

在一个派生类(D)中保留间接基类(A)的多份同名成员,虽然可以

全部评论 (0)

还没有任何评论哟~