第十四周项目三:抽象类CSolid
2013-06-04 10:13
267 查看
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:李蒙 * 完成日期:2013 年 6 月 4日 * 版本号:v1.0 * 输入描述:无 * 问题描述: * 程序输出: * 问题分析: * 算法设计:略 */ #include <iostream> #define PI 3.1415 using namespace std; class CSolid { public: virtual double area()=0; virtual double volume()=0; }; class CCube:public CSolid { public: CCube(double l):length(l){}; double area(); double volume(); private: double length; }; double CCube::area() { cout<<"正方体的表面积:"; return length*length*6; } double CCube::volume() { cout<<"正方体的体积:"; return length*length*length; } class CBall:public CSolid { public: CBall(double ri):r(ri){}; double area(); double volume(); private: double r; }; double CBall::area() { cout<<"球体的表面积:"; return PI*r*r*4; } double CBall::volume() { cout<<"球体的体积:"; return (4/3)*PI*r*r*r; } class CCylinder:public CSolid { public: CCylinder(double ri,double h0):r(ri),h(h0){}; double area(); double volume(); private: double r; double h; }; double CCylinder::area() { cout<<"圆柱体的表面积:"; return 2*r*r*PI+2*PI*r*h; } double CCylinder::volume() { cout<<"圆柱体的体积:"; return r*r*PI*h; } int main() { CCube c1(2); CBall c2(3); CCylinder c3(2,3); CSolid *p[3]={&c1,&c2,&c3};//定义基类指针数组p,使它每一个元素指向一个派生类 for(int i=0; i<3; i++) { cout<<p[i]->area()<<endl; cout<<p[i]->volume()<<endl; } return 0; }
输出结果:
相关文章推荐
- 第十四周项目三——抽象类CSolid
- 第十四周 项目三:定义抽象类CSolid,含有表面积及体积的纯虚数,派生出CCube,CBall,CCylinder,分别表示正方体、球体及圆柱体
- 十四周项目三设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数(第一次做完老师发的试题,还有时间做OJ上面的题,贵在坚持)
- 第十四周 【项目3-立体类族共有的抽象类】
- 第十四周 项目3-立体类族共有的抽象类
- 第十四周项目三----抽象类
- 第十四周 项目一:动物怎么叫?(抽象类)
- 项目三(抽象类CSolid)
- 第十四周项目四立体类族共有的抽象类
- 第十四周 项目二:定义抽象类Shape,由此派生出Circle(圆形)、Rectangle(矩形)、Triangle(三角形)
- 第十四周——项目3 立体类族共有的抽象类
- 第十四周项目3-立体类族共有的抽象类
- 第十四周项目一:Animal类(抽象类)
- 第十四周上机实践项目——立体类族共有的抽象类
- 第十四周项目3-立体类族共有的抽象类
- 第十四周项目一 小玩文件(文本文件的读写)
- 整合大量开源库项目(六)ListView动画,Activity"抽象化",顺便提一提”抽象类“And"接口"
- 第十四周项目1—验证折半查找
- 第十四周项目三
- 第十四周项目2-二叉树排序树中查找的路径