shadowfail 2018-12-28 04:53 采纳率: 100%
浏览 974
已采纳

C++作业派生类的定义求解

如下,现已有一个完整的长方形的类Rectangle, 数据成员有长和宽,成员函数包括一个构造函数和一个计算面积的函数area()。

请写出一个表示长方体的派生类Box,继承这个已给出的Rectangle类,满足以下要求:

(1)* 只能新增一个数据成员:height (高)。

(2)* 定义一个合适的Box类构造函数,使得main函数中创建对象的初始化可行;

(3)* 使用合适的继承方式,使得main函数中能通过派生类Box对象直接调用基类中的area()函数输出底面积。

(4) 新增一个成员函数 volume() 返回长方体的体积,使得main函数中的调用可行;

#include
using namespace std;

class Rectangle //长方形
{
public:
Rectangle(double l, double w) : length(l), width(w)
{
}
double area()
{
return length * width;
}
private:
double length; //长
double width; //宽
};

//在此定义派生类Box
// 在此处补充你的代码
int main()
{
Box b1(10, 20, 30);
cout << b1.area() << endl;
cout << b1.volume() << endl;
return 0;
}
输入

输出
main函数输出的两行,第一行应该是b1的底面积,第二行输出的是b1的体积
样例输入

样例输出
200
6000

展开全部

  • 写回答

3条回答 默认 最新

  • meet_code 2018-12-27 21:45
    关注

    代码如下,已测试,结果如图,望采纳

    #include <iostream>
    using namespace std;
    
    class Rectangle //长方形
    {
    public:
        Rectangle(double l, double w) : length(l), width(w)
    {}
        double area()
        {
            return length * width;
        }
    protected:
        double length; //长
        double width; //宽
    };
    class Box : public Rectangle //长方体,公有继承长方形
    {
    private:
        double height;
    public:
        Box(double l, double w, double h) : Rectangle(l,w), height(h)  子类的初始化表中应该包含对父类的初始化
        {
        }
        double volume()
        {
            return length*width*height;
        }
    };
    int main()
    {
        Box b1(10, 20, 30);
        cout << b1.area() << endl;
        cout << b1.volume() << endl;
        return 0;
    }
    

    图片说明

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部