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

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-28 05: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条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题