首页 > 其他分享 >7-2抽象基类

7-2抽象基类

时间:2023-05-24 23:15:09浏览次数:29  
标签:Triangle show double Shape 抽象 基类 public Rectangle

声明抽象基类Shape,由它派生出三个类,圆形Circle,矩形Rectangle,三角形Triangle,用一个函数输出三个面积。

输入格式:

在一行中依次输入5个数,圆的半径,长方形的高和宽,三角形的高和底,中间用空格分隔

输出格式:

圆的面积,长方形的面积,三角形的面积,小数点后保留2位有效数字,每个面积占一行。

#include<bits/stdc++.h>
using namespace std;

const PI=3.141592654;
class Shape{
public:
virtual double show()=0;
};
class Cricle:public Shape{
public:
Cricle(double a)
{
r=a;
}
double show()
{
return r*r*PI;
}
private:
double r;
};
class Rectangle:public Shape{
public:
Rectangle(double a,double b)
{
h=a;
w=b;
}
double show()
{
return w*h;
}
private:
double w,h;
};
class Triangle:public Shape{
public:
Triangle(double a,double b)
{
th=a;
tb=b;
}
doble show()
{
return tb*th/2;
}
private:
double th,tb;
}
int main()
{
double a,b,c,d,e;
cin>>a>>c>>d>>e;
Circle s1(a);
s1.show();
Rectangle s2(b,c);
s2.shoe();
Triangle s3(d,e);
s3.show();
return 0;
}

标签:Triangle,show,double,Shape,抽象,基类,public,Rectangle
From: https://www.cnblogs.com/Christmas77/p/17429806.html

相关文章

  • 【CPP0049】以Point类及平面基类Plane类为基础设计圆类Circle并实现相关文件操作
    基于Point类及平面基类Plane类,设计圆类Circle,并为Point类和Circle重载实现<<和>>运算符,main(void)函数实现Point对象和Circle对象的文件读写操作。@Point类结构说明: Point类的数据成员包括:①私有数据成员:X坐标x(double型),Y坐标y(double型)。Point类成员函数包括:①有参构造......
  • 二十三天搞懂设计模式之抽象工厂模式
    文章目录抽象工厂模式1.介绍2.实现3.代码4.总结抽象工厂模式1.介绍意图:提供一个创建一系列相关或者依赖的接口,而无需指定他们具体的类何时使用:系统的产品有多于一个产品族,而系统只消费其中某一族的产品,例子如下当前有个换装游戏,进入不同的游戏场景需要选择不同的游戏套装,比......
  • ADT抽象数据类型
    数据抽象:由一组操作所刻画的数据类型抽象类型:强调作用于数据上的操作,程序员和客户端无需关心数据具体是如何存储的,只需设计/使用操作即可;可变和不可变数据类型:可变类型的对象:提供了可改变其内部数据的值的操作;不可变数据对象:其操作不改变内部值,而是构造新的对象Creator:构造器......
  • 抽象类和接口
    抽象类在类之前加一个abstract抽象类是单继承,是一种约束,不能实现方法。不能new这个对象抽象类中可以有抽象方法(加abstract关键词)也可由普通方法接口实现类可实现多个接口接口种方法必须要在实现类中实现......
  • Java中的普通类和抽象类有什么区别?
    1.实例化对象:普通类可以被实例化,而抽象类不能被直接实例化。2.成员:普通类中可以有成员变量、成员方法和构造方法,而抽象类中也可以有这些成员,但是抽象类中还可以有抽象方法。3.抽象方法:抽象类中有抽象方法,这些方法没有实现体,需要在子类中被实现和重写。而普通类中没有抽象方法......
  • drf——反序列化校验源码(了解)、断言、drf之请求和响应、视图之两个视图基类
    1.模块与包#模块与包 模块:一个py文件被别的py文件导入使用,这个py文件称之为模块,运行的这个py文件称之为脚本文件包:一个文件夹下有__init__.py#模块与包的导入问题'''1.导入模块有相对导入和绝对导入,绝对导入的路径是从环境变量开始的2.导入任何模块,如果......
  • 2个视图基类,5个视图扩展类,9个视图子类,视图集,自动生成路由
    考p.name改变的是p对象自己的属性所以p.name='彭于晏'p1.name=lqz15个视图扩展类#写5个类(不叫视图类,视图扩展类,需要配合GenericAPIView一起用),每个类有一个方法,以后想写哪个接口,就继承哪个类即可from.modelsimportBookfrom.serializerimportBookSerialzierf......
  • C#学习笔记 -- 抽象、密封类、静态类、扩展方法
    1、抽象成员指设计被覆写的函数成员,特征如下必须是一个函数成员,字段常量不可用属性、索引器、事件、方法都可用必须用abstracet修饰不能实现,代码、访问器用分号表示abstractpublicvoidPrintStuff(strings);​abstractpulbicintMyProperty{......
  • 两个视图基类GenericAPIView,APIView
    基于两个视图基类GenericAPIView,APIViewclassBookserializers(serializers.ModelSerializer):#name=serializers.CharField()#price=serializers.CharField()#publish_id=serializers.CharField(write_only=True)#Authors=serializers.ListFie......
  • 空基类优化(EBO)
    空基类优化基础为保证同一类型的不同对象地址始终不同,要求任何对象或成员子对象的大小至少为1个字节,即使这个类为一个空类。structA{};//只包含类型成员、非虚函数或静态成员变量intmain(){DBG_LOG("......