当前位置: 首页 > article >正文

6-65.Shape抽象类

已知抽象类类Shape定义如下,其中两个纯虚函数分别为计算面积getArea()和计算周长getPerim()。请通过Shape类派生出矩形类Recta        ngle和圆类Circle,计算各自的面积和周长,并能够按照main函数给出的测试代码完成给定的输入。

输入样例:

1 2 3

输出样例:

Area:3.14

Perimeter:6.28

Area:6

Perimeter:10

代码实现:

#include  <iostream>
using  namespace  std;
const  double  PI=3.14;
class  Shape  {
public:
        virtual  double  getArea()=0;
        virtual  double  getPerim()=0;
};

/*请在这里输入你的代码*/
class Circle:public Shape{
	private:
		int r;
	public:
		Circle(int r):r(r){
		}
		double getArea(){
			return PI*r*r;
		}
		double getPerim(){
			return 2*PI*r;
		}
};
class Rectangle:public Shape{
	private:
		int l,w;
	public:
		Rectangle(int l,int w):l(l),w(w){
		}
		double getArea(){
			return l*w;
		}
		double getPerim(){
			return 2*(l+w);
		}
};
void print(Shape *a){
	cout<<"Area:"<<a->getArea()<<endl;
	cout<<"Perimeter:"<<a->getPerim()<<endl;
}
int  main(){
        double  r,l,w;
        cin>>r;
        cin>>l>>w;
        Shape  *p=NULL;
        p=new  Circle(r);
        print(p);//输出圆面积与周长
        p=new  Rectangle(l,w);
        print(p);//输出矩形面积与周长
        return  0;        
}


http://www.kler.cn/news/155223.html

相关文章:

  • 【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷14
  • 第九节HarmonyOS 常用基础组件4-Button
  • Sharding-Jdbc(3):Sharding-Jdbc分表
  • 微信小程序组件与插件有啥区别?怎么用?
  • Vue3 中el-tree-select使用中遇到的一些问题
  • SCAU:1125 定义结构体类型
  • 【Leetcode题单】(01 数组篇)刷题关键点总结01【数组的遍历】
  • java游戏攻略资讯网站的设计与实现springboot+vue
  • C 语言实现TCP 通信,以及地址复用
  • 《凤凰项目》读书笔记
  • LeetCode刷题笔记第80题:删除有序数组中的重复项 II
  • pandas基础1
  • 观察者设计模式
  • ZooKeeper 如何保证数据一致性?
  • 二叉树链式结构的实现和二叉树的遍历以及判断完全二叉树
  • CentOS配置本地源
  • Python 内置异常
  • 内存函数​(memcpy、memmove、memset、memcmp)
  • 奇葩问题:arp缓存、ip地址冲突(实际是ip地址被占用导致arp缓存出现问题)
  • GEE:不同方向的线性检测算子
  • 【C语言学习疑难杂症】第9期:关于%*s以及%*d等的使用
  • 点云从入门到精通技术详解100篇-基于三维点云的工件曲面轮廓检测与机器人打磨轨迹规划(下)
  • Raft 算法
  • C# Onnx 阿里达摩院开源DAMO-YOLO目标检测
  • 采集工具-免费采集器下载
  • ARM架构基础简介
  • SCAU:各位数字
  • python 图书馆选座小程序源码
  • css如何设置文本添加下划线
  • 深度学习 -- 卷积神经网络