一句话总结:虚继承的出现时为了解决多重继承中基类的多义性。

1、多重继承,基类为非虚继承

#ifndef CvirtualExtends_hpp

#define CvirtualExtends_hpp


class CPerson

{

public:

    int age;

    int tall;

};


class CFarmer:public CPerson

{

    

};


class CWorker:public CPerson

{

    

};


class CFarmerWorker:public CFarmer, public CWorker

{

    

};


#endif /* CvirtualExtends_hpp */


C++ 虚继承


2、基类为虚继承,则不会出现错误

class CFarmer:virtual public CPerson

{

    

};


class CWorker:virtual public CPerson

{

    

};


注:
1、CPerson是CFarmer、CWorker的虚基类,不加virtual则是非虚基类
2、少用多继承,多继承会使程序变得发复杂,增加维护的成本


相关文章:

  • 2022-12-23
  • 2021-08-24
  • 2021-11-22
  • 2021-11-10
  • 2021-09-03
  • 2022-01-23
猜你喜欢
  • 2021-07-07
  • 2021-10-09
  • 2021-06-26
相关资源
相似解决方案