虚继承

什么是虚继承?它与一般的继承有什么不同?它有什么用?写出一段虚继承的C++代码。

答案:虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。请看下图

                A

             /

           B

 

            A

         /

     C

 

              B          C

                 \      /

                   D

类D继承自类B和类C,而类B和类C都继承自类A,因此出现下图所示这种情况:

              A               A

                 \           /

                 B        C

                  \        /

                     D

在类D中会两次出现A.为了节省内存空间,可以将B\C对A的继承定义为虚拟继承,而A就成了虚拟基类。最后形成如下图所示的情况:

                    A

               /          \

              B         C

                 \        /

                    D

代码如下:

              class  A;

              class B:public virtual A;

              class C:public virtual A;

              class D:public B,public C;

你可能感兴趣的:(c,Class)