有一个基类:
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 和 lv
class luozi: public ma,public lv
{
public:
luozi();
void printStr();
}
当定义一个luozi类对象时:
luozi lz;
lz.setWeight(20);//错误:此时这个对象拥有两个Animal对象,编译器不知道为哪个对象赋值,此时应该将ma和lv继承Animal的方式改为public virtual(虚拟继承),这样lz对象就会拥有一个Animal对象