C++7-2-继承与派生:图形类

下面给出了图形类Shape的定义,请以Shape为基类派生出矩形类Rectangle和三角形类Triangle,并实现他们各自的求面积函数area(),该函数返回double类型。

下面是一份供你填充的代码:

#include <iostream>
using namespace std; 

class Shape
{
protected:
    int w, h;
public:
    Shape(int w, int h): w(w), h(h){}
}; 

/* 实现两个派生类 */

int main()
{
    int w, h;
    cin >> w >> h;
    Rectangle a(w, h);
    cout << a.area() << endl;
    cin >> w >> h;
    Triangle b(w, h);
    cout << b.area() << endl;
    return 0;
}

为了确保你按要求编写程序,我们将使用OJ的代码模板功能。

在提交代码时,只能提交两个派生类的定义和实现,绝不要提交其他的任何代码;在评测时,你提交的代码首先会被插入上面这段代码中间的注释那个位置,然后再编译运行。

务必将Rectangle与Triangle实现为Shape的派生类。如果你没有做到这一点,你可能会得0分。

输入描述

输入由主函数完成,你提交的代码中不应包含任何输入语句。

输出描述

输出由主函数完成,你提交的代码中不应包含任何输出语句。

示例1:

输入:7 8 7 7

输出:56 24.5

/*
#include <iostream>
using namespace std; 

class Shape // 基类定义
{
protected:
    int w, h; // 保护成员:宽,高
public:
    Shape(int w, int h): w(w), h(h){} // 构造函数
}; 
*/

/* 实现两个派生类 */

class Rectangle : public Shape // 派生类定义
{
public:
  Rectangle(int w, int h); // 构造函数
  double area(); // 求面积函数
};

class Triangle : public Shape // 派生类定义
{
public:
  Triangle(int w, int h); // 构造函数
  double area(); // 求面积函数
};

Rectangle::Rectangle(int w, int h): Shape(w, h) {} // 调用基类
double Rectangle::area(){return w*h;} // 矩形求面积函数初始化
Triangle::Triangle(int w, int h): Shape(w, h) {} // 调用基类
double Triangle::area() {return w*h*(0.5);} // 三角形求面积函数初始化

/* 以上是两个派生类 */

/*
int main()
{
    int w, h;
    cin >> w >> h;
    Rectangle a(w, h); // 定义矩形类对象
    cout << a.area() << endl; // 输出矩形面积
    cin >> w >> h;
    Triangle b(w, h); // 定义三角形类对象
    cout << b.area() << endl; // 输出三角形面积
    return 0;
}
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值