抽象一个形状类

Problem C: 抽象一个形状类

Description

阮宝同学期待着暑假来临,知道C++不好好复习麻烦不小。没有多态性,那就不叫面向对象,老师不划重点也能猜到。嘿嘿,自己做个经典题,怎么变题也不怕。老湿,再难的题还有木有?

Input

输入四个数,前两个是矩形的长和宽,后两个是三角形的底边长和高。

Output

分两行输出两个数,第一个是矩形的面积,第二个是三角形的面积。

Sample Input

3.5 6.4
3.5 6.4

Sample Output

22.4
11.2

HINT

#include <iostream>
#include <iomanip>
using namespace std;
class Shape
{
public:
    virtual double area() const=0;
}; 

class Rectangle:public Shape
{
public:
Rectangle(double r,double l):weigth(r),height(l){}
virtual double area() const{return weigth*height;}
protected:
    double weigth;
    double height;
};
class Triangle:public Shape
{
public:
Triangle(double r,double l):weigth(r),height(l){}
virtual double area() const{return 0.5*weigth*height;}
protected:
    double weigth;
    double height;
}; 

int main() 

{ 

    double a,b; 

    cin>>a>>b;   //输入矩形的长和宽 

    Rectangle r(a,b);//建立Rectangle类对象r, 矩形长a宽b 

    Shape *s1=&r; 

    cout<<s1->area()<<endl;//输出矩形的面积 

    double w,h; 

    cin>>w>>h;   //输入矩形的长和宽 

    Triangle t(w,h); //建立Triangle类对象t,三角形底边长w高h 

    Shape &s2=t; 

    cout<<s2.area();//输出三角形面积 

    return 0; 

}

抽象一个形状类

时间: 2024-11-07 15:51:14

抽象一个形状类的相关文章

OJ刷题---抽象一个形状类

题目要求: 输入代码: #include<iostream> using namespace std; class Shape { public: virtual double area()const =0 ; //虚基函数 }; class Rectangle :public Shape { public: Rectangle (double l,double w) { length=l; weith=w; } double area()const; private: double leng

实验四 (1):定义一个形状类(Shape)方法:计算周长,计算面积

(1)定义一个形状类(Shape)方法:计算周长,计算面积子类:矩形类(Rectangle) :额外的方法:differ() 计算长宽差圆形类(Circle)三角形类(Triangle)正方形类(Square) 矩形的子类生成几个不同的形状对象,放在一个Shape类型的数组里,分别求每个形状的周长和面积.如果形状对象是一个矩形,且不是正方形,则计算长宽差. 1 package com.tiger.practice; 2 3 class Shape { 4 5 public double leng

php面向对象-抽象一个类

一.抽象一个类 1.概念: 对象 :客观存在事务的实体 类   :对实体的一种抽象的描述 类不能被直接使用,只有实例化(new)以后才可以使用 2.命名:类的命名等同于函数的命名,注意:是类名不区分大小写(变量名区分大小写) 类:所有单词的首字母大写如GoodPeople 方法(函数):第一个单词的首字母小写以后单词的首字母大写,如loadSay 3.组成 类里面可以定义成员方法(函数)也可以定义成员属性(变量) 4.类的声明 [一些修饰的关键字] class 类名{ 类中成员: } 5.成员的

如何抽象一个类

1.类的声明: 2.变量(成员属性): ①格式:在类的成员属性前面一定要有一个修饰词,public/protected/private/static: 修饰符$变量名 [= 默认值]: 默认声明类时,先不要给初始值,因为后期创建的所有对象都有自己的属性: 例如 public $name = 'gaoyuanyuan'; 注意:成员属性不可以是带运算符的表达式.变量.方法或函数调用: ②定义方式: public $varA = 100;   // 普通数值(4个标量:整数.浮点数.布尔.字符串):

第十三周(-形状类族的中的纯虚函数)

/* *copyright(c) 2015,烟台大学计算机学院 *All rights reserved. *文件名:第十三周(-形状类族的中的纯虚函数) *作者:王忠 *完毕日期:2015.6.02 *版本:v1.0 * *问题描写叙述:写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形).Rectangle(矩形).Triangle(三角形).用例如以下的main()函数,求出定义的几个几何体的面积和. *输入描写叙述: *程序输出: #include <iostr

第十三周项目二:形状类族的中的纯虚函数

问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: 形状类族的中的纯虚函数 .cpp *作 者:白云飞 *完成日期:2015年5月29日 *版 本 号:v1.0 * *问题描述:定义抽象基类Shape,由它派生出3个派生类,Circle(圆形).Rectangle(矩形).Triangle(三角形).用如下的main()函数,求出定义的几个几何体的面积和. *程序输入:圆的半径,矩形的长和宽,三角形的底

【Python&amp;数据结构】 抽象数据类型 Python类机制和异常

这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Python编程,借着本次机会仔细学习一下. 抽象数据类型 最开始的计算机语言,关注的都是如何更加有效率地计算,可以说其目的是计算层面的抽象.然而随着这个行业的不断发展,计算机不仅仅用于计算,开发也不仅只关注计算过程了,数据层面的抽象也变得同样重要.虽然计算机语言一开始就有对数据的抽象,但是那些都只是对一些最基本的

[Objective-C]简单实现一个OC类

一.语法规范 1.类:抽象的描述一件事物,比如将人.狗和猫抽象成动物类 在OC中用两个文件来描述一个类 1> .h:类的声明文件,用于声明成员变量和方法,类的声明代码在关键字@interface和@end之间: 2> .m:类的实现文件,用于实现.h文件中的方法,类的声明代码在关键字@implementation和@end之间: 注意:.h文件中的方法只参加声明,不参加实现:也就是说,只说明方法类型.方法返回值类型.方法名.方法参数类型,不编写方法内部代码 2.方法: 1> 方法的分类

形状类的纯虚函数

/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者:马广明 * 完成日期:2014 年 5 月 27 日 * 版 本 号:v1.0 * 问题描述:形状类中的纯虚函数 */ #include <iostream> using namespace std; const double PI=3.14; class Shape { public: virtual double area() const=0; }; class