第13周实践项目-立体族类共有的抽象类
来源:互联网 发布:js请求url获取返回值 编辑:程序博客网 时间:2024/06/07 18:27
问题描述及代码:
/**copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称:hellow.cpp*作者:田甜*完成日期:2016年5月28日*版本号:v1.0**问题描述: 设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。*输入描述:///*程序输出:*/#include <iostream>using namespace std;const double p=3.14159;class CSolid{public: virtual double area()=0; virtual double volume()=0;};class CCube:public CSolid{private: double len;public: CCube(double l):len(l){} virtual double area() { return len*len; } virtual double volume() { return len*len*len; }};class CBall:public CSolid{private: double radious;public: CBall(double r):radious(r){} virtual double area() { return 4*p*radious*radious; } virtual double volume() { return 4/3*(p*radious*radious*radious); }};class CCylinder:public CSolid{private: double radious,hight;public: CCylinder(double r,double h):radious(r),hight(h){} virtual double area() { return p*radious*radious*2+p*radious*2*hight; } virtual double volume() { return p*radious*radious*hight; }};int main(){ CCube c1(3.0),c2(5.0); CCylinder l1(2.0,3.0),l2(5.0,6.3); CBall r1(1.0),r2(4.0); CSolid* p[6]={&c1,&c2,&l1,&l2,&r1,&r2}; double areas=0,volumes=0; for(int i=0;i<6;i++) areas+=p[i]->area(); cout<<"面积总和为:"<<areas<<endl; for(int i=0;i<6;i++) volumes+=p[i]->volume(); cout<<"体积总和为:"<<volumes<<endl; return 0;}
运行结果:
心得体会:
感觉跟前面求面积的非常相似,问题就是有时候还是会忘了加上继承,以后注意吧。
0 0
- 第13周实践项目-立体族类共有的抽象类
- 第13周项目四——立体族类共有的抽象类
- 第十三周项目-4-立体族类共有的抽象类
- 立体族类共有的抽象类
- 第13周上机实践项目3——立体类族共有的抽象类
- 第13周实践项目4立体类族共有的抽象类
- 第13周实践项目4立体类族共有的抽象类
- C++第13周项目 多态性 【项目4-立体类族共有的抽象类】
- 第13周项目3立体类族共有的抽象类
- 第13周-多态性-项目3-立体类族共有的抽象类
- 第13周项目3—立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周 【项目3-立体类族共有的抽象类】
- 第13周项目3-立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周 项目3 立体类族共有的抽象类
- 第13周项目3-立体类组共有的抽象类
- 【HDU】 1333 Smith Numbers
- 简单dp
- Ubuntu10.04下安装tftp服务器
- Java基础-静态导入:static import
- 判断两条线段是否相交
- 第13周实践项目-立体族类共有的抽象类
- NYOJ 456 邮票分你一半
- 封装
- Lombok - 消除冗长的 java 代码
- 关于cocoa框架,你所要知道的一切(苹果官方文档,cocoa框架核心竞争力,必须收藏!)
- 笔记8:列表生成式
- Kernel PCA 原理和演示
- JAVA时间日期学习笔记
- android 按钮单击事件的四种写法