什么叫做虚基类,它有何作用
Posted COCO_PEAK_NOODLE
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么叫做虚基类,它有何作用相关的知识,希望对你有一定的参考价值。
参考文章:https://zhidao.baidu.com/question/77701815.html
在C++中,如果在多条继承路径上有一个公共的基类,那么在这些路径中的某几条路径的汇合处,这个公共的基类就会产生多个实例.如果想使这个公共的基类只产生一个实例,则可将这个基类说明为虚基类. 这要求在从base类派生新类时,使用关键字virtual将base类说明为虚基类.
用例子说明吧。
class baseprotected:int b;
clase base1:public base…;
clase base2:public base…;
clase derived:public base1,public base2 …;
derived d;
d.b //错误.
d.base::b //错误. 因为不知是用d.base1::b还是d.base2::b
class baseprotected:int b…;
clase base1:virtual public base…; //说明base为虚基类
clase base2:virtual public base…; //说明base为虚基类
clase derived:public base1,public base2 …;
derived d;
d.b //对.
d.base::b //对. 因为d.base::b和d.base1::b还是d.base2::b都是引用同一虚基类成员b,具有相同的值.
以上是关于什么叫做虚基类,它有何作用的主要内容,如果未能解决你的问题,请参考以下文章