• [YTU]_2622(B 虚拟继承(虚基类)-沙发床(改错题))


    题目描述

     有一种特殊的床,既能当床(Bed)用又能当沙发(Sofa)用,所以叫沙发床(SleeperSofa)。

    同时床和沙发又是一种特殊的家具(Furniture),具有一切家具的特性。


    利用虚拟继承(虚基类)建立一个类的多重继承,沙发床继承了床和沙发的特性。


    下面的程序中,在begin到end部分存在语法错误。请改正错误,使程序按下面输入输出的规定运行。

    注意:只提交修改过的begin到end部分的代码。

    #include <iostream>
    using namespace std;

    //家具类Furniture
    class Furniture
    {
    public:
    Furniture(double w)
    { weight=w; }
    void display()
    {
    cout<<"weight:"<<weight<<endl;
    }
    protected:
    double weight; //家具重量
    };

    //******************** begin ********************
    //床类Bed
    class Bed: public Furniture
    {
    public:
    Bed(double we,double l,double wi):Furniture(we),length(l),width(wi){}
    void display()
    {
    cout<<"length:"<<length<<endl;
    cout<<""<<width<<endl;
    }
    protected:
    double length; //床的长
    double width; //床的宽
    };

    //沙发类Sofa
    class Sofa: public Furniture
    { public:
    Sofa(double w,double h):Furniture(w),height(h){}
    void display()
    {
    cout<<"height:"<<height<<endl;
    }
    protected:
    double height; //沙发的高度
    };

    //沙发床
    class SleeperSofa:public Bed, public Sofa
    {public:
    SleeperSofa(double we,double l,double wi,double h):Bed(we,l,wi),Sofa(we,h){ }
    void display()
    {
    cout<<"weight:"<<weight<<endl;
    Bed::display();
    Sofa::display();
    }
    };

    //********************* end ********************

    int main()
    {
    double weight,length,width,height;
    cin>>weight>>length>>width>>height;

    SleeperSofa ss(weight,length,width,height);
    ss.display();

    return 0;
    }

    输入

    依次输入沙发床的重量、长、宽、高  

    输出

    依次输出沙发床的重量、长、宽、高

    样例输入

    200 1.8 1.5 1.2

    样例输出

    weight:200
    length:1.8
    1.5
    height:1。。。。
    #include <iostream>
    using namespace std;
     
    //家具类Furniture
    class Furniture
    {
      public:
         Furniture(double w)
          { weight=w; }
         void display()
         {
             cout<<"weight:"<<weight<<endl;
         }
      protected:
        double weight; //家具重量
    };
    class Bed:virtual public Furniture
    {
    public:
        Bed(double we,double l,double wi):Furniture(we),length(l),width(wi){}
        void display()
        {
            cout<<"length:"<<length<<endl;
            cout<<""<<width<<endl;
        }
    protected:
        double length;
        double width;
    };
    class Sofa:virtual public Furniture
    {
    public:
        Sofa(double w,double h):Furniture(w),height(h){}
        void display()
        {
            cout<<"height:"<<height<<endl;
        }
    private:
        double height;
    };
    class SleeperSofa:public Bed,public Sofa
    {
    public:
        SleeperSofa(double we,double l,double wi,double h):Furniture(we),Bed(we,l,wi),Sofa(we,h){}
        void display()
        {
            cout<<"weight:"<<weight<<endl;
        Bed::display();
        Sofa::display();
        }
    };
    int main()
    {
      double weight,length,width,height;
      cin>>weight>>length>>width>>height;
     
      SleeperSofa ss(weight,length,width,height);
      ss.display();
       
      return 0;
    }


  • 相关阅读:
    ExtJs-学习篇(1)
    js中的Ajax经典示例
    软件工程开发流程
    Maven和Ajax
    搭建SSH框架
    拦截器
    OGNL
    Struts 2配置详解
    Struts 2入门
    HQL连接查询和注解
  • 原文地址:https://www.cnblogs.com/sxy201658506207/p/7586326.html
Copyright © 2020-2023  润新知