zoukankan      html  css  js  c++  java
  • 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 和 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对象
  • 相关阅读:
    url 记录
    tvm
    const flold
    spring
    java连接mysql数据库
    linux常用命令记录
    pikachu漏靶场洞测试
    Starting.....
    IOS App提交流程
    InApp Purchase(iap)快速指南
  • 原文地址:https://www.cnblogs.com/handongdong/p/2223763.html
Copyright © 2011-2022 走看看