c++ 种的虚拟继承

c++ 类的虚拟继承有一个基类:class Animal {public:Animal()void setWeight(float weight)float getWeig

c++ 类的虚拟继承

有一个基类:class Animal {public:Animal();void setWeight(float weight);float getWeight();private:float weight;}有两个Animal类的派生类:class ma:public Animal{public:ma();void run();}class lv:public Animal{public:lv();void roar();}定义一个派生类 luozi 继承 ma 和 lvclass luozi: public ma,public lv{public:luozi();void printStr();}当定义一个luozi类对象时:luozi lz;lz.setWeight(20);//错误:此时这个对象拥有两个Animal对象,编译器不知道为哪个对象赋值,此时应该将ma和lv继承Animal的方式改为public virtual(虚拟继承),这样lz对象就会拥有一个Animal对象

?