有一个基类:
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对象
原文链接: https://www.cnblogs.com/handongdong/archive/2011/10/25/2223763.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/35019
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!