编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle

简介: 编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle

正文


请编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,二者都有计算对象面积的函数getArea()、计算对象周长的函数getPerim()

#include <iostream>
#include <cmath>
using namespace std;
class Shape
{
  public:
    Shape(){}
    ~Shape(){}
  public:
    virtual double getArea() const = 0;
    virtual double getPerim() const = 0;
  private:
};
class Rectangle : public Shape
{
  public:
    Rectangle(double _length, double _width) : length(_length), width(_width){}
    ~Rectangle(){}
  public:
    double getArea() const {return length * width;}
    double getPerim() const {return 2 * (length + width);}
  private:
    double length;
    double width;
};
class Circle : public Shape
{
  public:
    Circle(double _radius) : radius(_radius){}
    ~Circle(){}
  public:
    double getArea() const {return radius * radius * M_PI;}
    double getPerim() const {return 2 * M_PI * radius;}
  private:
    double radius;
};
int main()
{
  Rectangle * rec = new Rectangle(2, 3);
  Circle * cir = new Circle(3);
  cout << rec->getArea() << endl;
  cout << rec->getPerim() << endl;
  cout << cir->getArea() << endl;
  cout << cir->getPerim() << endl;
  return 0;
}


输出:

6
10
28.2743
18.8496
相关文章
|
3天前
|
安全 Java 数据库连接
【Java每日一题】——第四十题:设计一个Shape接口和它的两个实现类Square和Circle
【Java每日一题】——第四十题:设计一个Shape接口和它的两个实现类Square和Circle
170 0
|
3天前
|
安全 Java 数据库连接
【Java每日一题】——第三十六题:设计一个长方形类Rectangle和它的3个子类:圆类Circle、圆球体类Sphere和圆柱体类Cylinder,分别求它们的面积
【Java每日一题】——第三十六题:设计一个长方形类Rectangle和它的3个子类:圆类Circle、圆球体类Sphere和圆柱体类Cylinder,分别求它们的面积
94 0
|
3天前
|
测试技术 C++
[C++/PTA] 抽象类Shape
[C++/PTA] 抽象类Shape
45 0
|
10月前
先创建一个Point类,然后定义Triangle类。在Triangle类中定义三个Point的实体来表示一个三角形的三个顶点
先创建一个Point类,然后定义Triangle类。在Triangle类中定义三个Point的实体来表示一个三角形的三个顶点
188 0
|
11月前
|
Go
面向对象定义一个hero类
面向对象定义一个hero类
100 0
|
12月前
|
编译器 程序员 数据安全/隐私保护
C++ 类的定义和实现 class Color_and_Coordinate
C++ 类的定义和实现 class Color_and_Coordinate
81 0
|
计算机视觉 Python Windows
OpenCV——line、circle、rectangle、ellipse、polylines函数的使用和绘制文本putText函数以及绘制中文的方法。
学习OpenCV的过程中,画图是不可避免的,本篇文章旨在介绍OpenCV中与画图相关的基础函数。
225 0
OpenCV——line、circle、rectangle、ellipse、polylines函数的使用和绘制文本putText函数以及绘制中文的方法。
C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
C#编程-130:Brush的五个继承类
C#编程-130:Brush的五个继承类
189 0
C#编程-130:Brush的五个继承类
LeetCode之Construct the Rectangle
LeetCode之Construct the Rectangle
61 0