首页 > 其他分享 >抽象基类

抽象基类

时间:2023-04-18 23:33:10浏览次数:25  
标签:g2 area int void Shape 抽象 基类 public

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

输入格式:

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

输出格式:

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

输入样例:

在这里给出一组输入。例如:

3 3 4 3 4

输出样例:

在这里给出相应的输出。例如:

28.27
12.00
6.00
 1 #include <bits/stdc++.h>
 2 #define PI 3.14159
 3 #include <math.h>
 4 using namespace std;
 5 class Shape {
 6     virtual  void area()=0;
 7 };
 8 class Circle:public Shape
 9 {
10 private:
11 int r;
12 public:
13 Circle(int a){r=a;}
14 void area(){printf("%.2f\n",PI*r*r);
15 }
16 };
17 class Rectangle:public Shape
18 {private:
19 double gao,kuan;
20 public:
21 Rectangle(double g,double k){
22 gao=g;
23 kuan=k;
24 }
25 void area(){
26 printf("%.2f\n",gao*kuan);
27 }
28 };
29 class Triangle : public Shape
30 {
31 private:
32 int ga,di;
33 public:
34 Triangle(int g2,int d){
35 ga=g2;
36 di=d;
37 }
38 void area(){
39 printf("%.2f\n",0.5*ga*di);
40 }
41 };
42 int main(){
43     int r,g,k,g2,d;
44         cin>>r>>g>>k>>g2>>d;
45     Circle bb( r);
46     Rectangle cc(g, k);
47     Triangle dd( g2, d);
48     bb.area();
49     cc.area();
50     dd.area();
51     return 0;
52 }

 

标签:g2,area,int,void,Shape,抽象,基类,public
From: https://www.cnblogs.com/liubingyu/p/17331657.html

相关文章

  • 面向接口编程实践之aspnetcoreapi的抽象
    最为一名越过菜鸟之后的开发,需要做接口开发。下面做一个纯粹的接口编程的实例demo,仅仅是一个webapi接口的抽象。下面是代码接口,AbsEFWork是webapi,BaseEntityFramework是一个接口库。先介绍一下webapi的实现,代码是从底层往上层写的,阅读代码的习惯应该是自上向下。publiccla......
  • 抽象类,接口,内部类
    抽象类abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。抽象类只能单继承抽......
  • 虚基类应用
    一、编写动物类animal,受保护数据成员name(名称、,string),age(年龄,int),公有函数成员void show(),输出“Animal,名称,年龄";公有派生鱼类fish加兽类beast,鱼类增加受保护数据成员velocity(速度,int),公有函数成员void show(),输出“Fish,名称,年龄,速度";兽类增加受保护数据成员aPpetite(食......
  • java抽象类和抽象方法
    抽象类语法:   [public]?abstractclass类名[extends父类名]?[implements接口名1,接口名2,...]?  {     [private | protected | public]? [static]?[final]?类型名变量名[ =表达式1 [,变量名[ =表达式2... ]?]?]? ;   [private |......
  • c# 接口、抽象类
    接口概述接口像类一样声明,里面的成员可以包含方法的签名(是隐式public的且抽象的)、属性、事件和委托,但在接口中不可以定义数据成员(字段)和静态成员。与类不同的是,接口中仅仅是他们的声明,并不提供实现。因此接口是函数声明的集合。如果类或结构从一个接口派生,则这个类或结构负责实......
  • 抽象类
    抽象类抽象类的解释:抽象方法就是指的没有实现的方法,业绩是没有方法体,如果一个类中有抽象方法,那么这个类也必须是抽象类,一般来说,这个类都会有子类,其方法的实现,由子类来重写,为什么会用到抽象类当你定义的一个类有不确定性的时候,(动物吃什么)那么我们就会考虑将该方法设计为抽象方......
  • [oeasy]python0135_python_语义分析_ast_抽象语法树_abstract_syntax_tree
    语义分析_抽象语法树_反汇编回忆上次回顾了一下历史python是如何从无到有的看到Guido长期的坚持和努力python究竟是如何理解print("hello")的?这些ascii字母如何被组织起来执行?纯文本首先编写Guido的简历print("1982------Guidoincwi")print("1995------Guidoincnri")pri......
  • [oeasy]python0135_python_语义分析_ast_抽象语法树_abstract_syntax_tree
    语义分析_抽象语法树_反汇编回忆上次回顾了一下历史python是如何从无到有的看到Guido长期的坚持和努力 ​ 添加图片注释,不超过140字(可选) python究竟是如何理解print("hello")的?这些ascii字母如何被组织起来执行? ......
  • Java中abstract(抽象类)
    1、概述(1)只给出方法定义而不具体实现的方法被称为抽象方法,抽象方法是没有方法体的,在代码的表达上就是没有“{}”。使用abstract修饰符来表示抽象方法和抽象类。(2)abstract修饰符表示所修饰的类没有完全实现,还不能实例化。如果在类的方法声明中使用abstract修饰符,表明该方法是一个......
  • 观察基类与派生类中成员函数的调用
    一、问题描述。用对象和指针来观察基类与派生类中成员函数的调用。二、设计思路。1、定义一个拥有fn1,fn2两个成员函数的基类BaseClass2、由基类BaseClass派生出一个同样拥有fn1,fn2两个成员函数的派生类DerivedClass3、在主函数中声明一个派生类的对象,及基类与派生类的指针4......