求几种图形的面积(虚函数,类的继承与使用)

题目描述

KiKi理解了继承可以让代码重用,他现在定义一个基类shape,私有数据为坐标点x,y, 由它派生Rectangle类和Circle类,它们都有成员函数GetArea()求面积。派生类Rectangle类有数据:矩形的长和宽;派生类Circle类有数据:圆的半径。Rectangle类又派生正方形Square类,定义各类并测试。输入三组数据,分别是矩形的长和宽、圆的半径、正方形的边长,输出三组数据,分别是矩形、圆、正方形的面积。圆周率按3.14计算。

输入描述

输入三行,
第一行为矩形的长和宽,
第二行为圆的半径,
第三行为正方形的边长。

输出描述

三行,分别是矩形、圆、正方形的面积。

示例

输入:
7 8
10
5
输出:
56
314
25

代码

#include <iostream>
using namespace std;

//这里先弄一个基类shape,然后设计一个虚函数GetArea(),里面什么也没有
class Shape{
public:
    virtual float GetArea()
    {
        return 0.0;
    }
};

//这里来一个矩形类,继承于基类,有长和宽两个数据
//两个函数,一个用来设置数据,一个为虚函数窗口
class Rectangle:public Shape{
    int x;
    int y;
public:
    void setRectangle(int m,int n){
        x=m;
        y=n;
    }
    virtual float GetArea(){
        return x*y;
    }
};

//圆类,同上
class Circle:public Shape{
    int r;
public:
    void setCircle(int x){
        r=x;
    }
    virtual float GetArea(){
        return r*r*3.14;
    }
};

//正方形类,继承于矩形类
class Square:public Rectangle{
    int m;
public:
    void setSquare(int x){
        m=x;
    }
    virtual float GetArea(){
        return m*m;
    }
};

//主函数
int main(){
	//先进行一下实例化
    Rectangle r;
    Circle c;
    Square s;
    int x,y,rr,a;
    cin>>x>>y>>rr>>a;
    //把实例的数据设置一下
    r.setRectangle(x,y);
    c.setCircle(rr);
    s.setSquare(a);
    //愉快地调用求面积函数叭
    cout<<r.GetArea()<<endl;
    cout<<c.GetArea()<<endl;
    cout<<s.GetArea()<<endl;
    return 0;
}

输入

7 8
10
5

输出

56
314
25
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值