第十四周 项目2-形状类族的中的纯虚函数
来源:互联网 发布:数据资产化运营 编辑:程序博客网 时间:2024/05/20 14:20
/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 作者: 初瑞* 完成日期: 2014年 5 月 27 日* 版本号: v1.0* 输入描述:无* 问题描述:,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。* 程序输出:几个几何体的面积和*/#include <iostream>using namespace std;class Shape{public: virtual double area() const =0;//定义纯虚函数};class Circle:public Shape{public: Circle(double r):radius(r) {} double area() const;private: double radius;};double Circle::area()const{ return(radius*radius*3.14);}class Rectangle:public Shape{public: Rectangle(double w,double h):width(w),height(h){} double area( ) const;private: double width; double height;};double Rectangle::area( )const{ return width*height;}class Triangle:public Shape{public: Triangle(double x,double y):wid(x),hei(y) {} double area( )const;private: double wid; double hei;};double Triangle::area( )const{ return 0.5*wid*hei;}int main(){ Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectangle类对象r1,r2,参数为矩形长、宽 Triangle t1(4.5,8.4),t2(3.4,2.8); //建立Triangle类对象t1,t2,参数为三角形底边长与高 Shape *pt[6]= {&c1,&c2,&r1,&r2,&t1,&t2}; //定义基类指针数组pt,使它每一个元素指向一个派生类对象 double areas=0.0; //areas为总面积 for(int i=0;i<6;i++) { areas=areas+pt[i]->area(); } cout<<"totol of all areas="<<areas<<endl; //输出总面积 return 0;}
运行结果:
心得体会:我不明白为什么每个area后面都要加个const,所以我又试了试不加const的程序,发现也能运算出同样的结果
#include <iostream>#include <string>using namespace std;class Shape{public: virtual double area()=0;};class Circle:public Shape{public: Circle(double R):r(R){} double area() ;private : double r;};double Circle::area(){ return 3.1415*r*r;}class Rectangle:public Shape{public: Rectangle(double a,double b):r1(a),r2(b){} double area() ;private : double r1,r2;};double Rectangle::area(){ return r1*r2;}class Triangle:public Shape{public: Triangle(double c,double d):t1(c),t2(d){} double area();private : double t1,t2;}; double Triangle::area(){ return t1*t2/2;}int main(){ Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectangle类对象r1,r2,参数为矩形长、宽 Triangle t1(4.5,8.4),t2(3.4,2.8); //建立Triangle类对象t1,t2,参数为三角形底边长与高 Shape *pt[6]= {&c1,&c2,&r1,&r2,&t1,&t2}; //定义基类指针数组pt,使它每一个元素指向一个派生类对象 double areas=0.0; //areas为总面积 for(int i=0; i<6; i++) { areas=areas + pt[i]->area(); } cout<<"totol of all areas="<<areas<<endl; //输出总面积 return 0;}
0 0
- 第十四周项目2-形状类族的中的纯虚函数
- 第十四周 【项目2-形状类族的中的纯虚函数】
- 第十四周项目2-形状类族的中的纯虚函数
- 第十四周——项目2-形状类族的中的纯虚函数
- 第十四周 项目2-形状类族的中的纯虚函数
- 第十四周 项目2--形状类族的中的纯虚函数
- 第十四周上机实践项目——形状类族的中的纯虚函数
- 第十四周(项目二)——形状类族的中的纯虚函数。
- 第十四周项目二-形状类族中的纯虚函数
- 第十一周项目 2 形状类族的中的纯虚函数
- 十四周项目3-形状类族的中的纯虚函数
- 项目二。形状类族的中的纯虚函数
- 项目39-形状类族的中的纯虚函数
- 项目2-形状类族中的纯虚函数
- 第十三周项目2——【项目2-形状类族的中的纯虚函数】
- 十四周项目二形状类族中的纯虚数
- 十四周——形状类中的纯虚函数
- C++第14周项目2 - 形状类族的中的纯虚函数
- fragment 使用过程中单例模式引发的问题
- TOJ 1551 Power Hungry Cows -- 搜索
- 防网站采集非常有效的办法
- Hadoop Map Reduce Secondary Sort
- CentOS查看系统版本信息
- 第十四周 项目2-形状类族的中的纯虚函数
- ubuntu下编写c语言程序
- 净网行动进行中,你的网站躺枪了吗?
- 商店管理系统代码
- ubuntu下android反编译
- 东北兴衰的人口因素
- 用Service实现断点下载
- 为什么要在引入的css或者js文件后面加参数的详细讲解
- 哇访问官方网而改为人工费