第十三周项目三 立体族类的纯虚函数
2015-06-10 08:55
204 查看
问题及代码
总结:是根据上一篇改动来的
/* ALL rights reserved. *文件名称: 初学对象13 作者:李长鸿 *完成时间:2015.6.10 *问题描述: 立体几何的纯虚函数 #include <iostream> using namespace std; double const p=3.1415; class Csolid { public: virtual double area()const=0; virtual double volum()const=0; virtual void print()const=0; }; class Ccube:public Csolid { double a; public: Ccube(double t=1):a(t) {} double area()const { return 6*a*a; } double volum()const { return a*a*a; } void print()const { cout<<"边长为"<<a<<"的正方体的面积为:"<<area()<<", "<<"体积为:"<<volum()<<endl; } }; class Cboll:public Csolid { double a; public: Cboll(double i=1):a(i) {} double area()const { return 4*p*a*a; } double volum()const { return a*a*a*3/4; } void print()const { cout<<"半径为"<<a<<"的球体的面积为:"<<area()<<", "<<"体积为"<<volum()<<endl; } }; class Ccylinder:public Csolid { double t,h; public: Ccylinder(double a=1,double b=1):t(a),h(b) {} double area()const { return p*t*t*2+p*t*2*h; } double volum()const { return p*t*t*h; } void print()const { cout<<"底边和高分别为"<<t<<", "<<h<<"的圆柱体的面积为:"<<area()<<", "<<"体积为"<<volum()<<endl; } }; int main() { Ccube c1(12.6),c2(4.9);//建立Ccube类对象c1,c2,参数为边长 Cboll r1(8.4),r2(5.0);//建立Cboll类对象r1,r2,参数为半径 Ccylinder t1(4.5,8.4),t2(3.4,2.8); //建立Ccylinder类对象t1,t2,参数为底半径与高 Csolid *pt[6]= {&c1,&c2,&r1,&r2,&t1,&t2}; //定义基类指针数组pt,使它每一个元素指向一个派生类对象 double areas=0.0; //areas为总面积 double volums=0;//volums为总体积 for(int i=0; i<6; i++) { pt[i]->print(); areas=areas + pt[i]->area(); volums=volums+pt[i]->volum(); } cout<<"totol of all areas="<<areas<<endl; //输出总面积 cout<<"total of all volums="<<volums<<endl;//输出总体积 return 0; } */
总结:是根据上一篇改动来的
相关文章推荐
- 认识自己——要用心感受世界
- 浅析JavaScript动画
- 第十四周程序阅读(2)
- 第十四周程序阅读——例六
- 第13周-阅读项目2-有关参数的get函数
- http://www.softreg.com.cn/共享软件中心。
- OpenWrt系统安全改进<五> --- Web 访问权限分级
- .Net 转战 Android 4.4 日常笔记(9)--常用组件的使用方法[附源码]
- 第十四周项目1-小玩文件(2)
- 使用NSURLConnection获得网络数据
- [UOJ 118][UOJ Round #8]赴京赶考
- ios/oc中的结构体 与字符串互转
- .Net 转战 Android 4.4 日常笔记(8)--常见事件响应及实现方式
- 期待已久的2012年度最佳jQuery插件揭晓
- AD中发布共享资源
- Android5.1 手机Settings加入从不休眠
- Uncode-Schedule首页、文档和下载 - 分布式任务调度组件 - 开源中国社区
- 使用python的base64解码出迅雷的下载地址
- 第十四周(OOP版电子词典)
- 第十四周程序阅读