第13周 项目3 立体类族共有的抽象类
2015-06-03 09:21
330 查看
问题及代码:
运行结果:
/*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名:test.cpp *作者:liu_feng_zi_ *完成日期:2015年6月3日 *版本号:v1.0 *问题描述:设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。 设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。 在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。 要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。 *输入描述: *程序输出: */ #include <iostream> using namespace std; class CSolid { public: virtual void area()=0; virtual void volume()=0; }; class CCube:public CSolid { private: double a,b,c; public: CCube(double x,double y,double z):a(x),b(y),c(z) {} void area() { cout<<"该正方体的表面积为:"<< 2*(a*b+a*c+b*c)<<endl; } void volume() { cout<<"该正方体的体积为:"<<a*b*c<<endl; } }; class CBall:public CSolid { private: double r; public: CBall(double R):r(R) {} void area() { cout<<"该球体的表面积为:"<<4*3.14*r*r<<endl; } void volume() { cout<<"该球体的体积为:"<<(4*3.14*r*r*r)/3<<endl; } }; class CCylinder:public CSolid { private: double r,h; public: CCylinder(double R,double H):r(R),h(H) {} void area() { cout<<"该圆柱体的表面积为:"<<2*3.14*r*r+3.14*2*r*h<<endl; } void volume() { cout<<"该圆柱体的体积为:"<< 3.14*r*r*h<<endl; } }; int main() { CSolid *p; CCube ccu(4.4,3.6,5.6); CBall cb(5.5); CCylinder ccy(2.5,4.5); p=&ccu; p->area(); p->volume(); p=&cb; p->area(); p->volume(); p=&ccy; p->area(); p->volume(); return 0; }
运行结果:
相关文章推荐
- 矩形覆盖
- java实现附件预览(openoffice+swftools+flexpaper)(解决jsp读取全盘文件问题)
- 【scikit-learn】scikit-learn的线性回归模型
- Linux服务架设篇--ping命令
- 第十三周【项目 - 链表类】
- 第十三周项目一 动物叫声 2
- windows下Python3配置beautifulsoup4
- 第十三周 程序阅读 (2)虚析构函数
- 第13周项目3-立体类族共有的抽象类
- 【Android笔记】Activity的四种启动模式
- 调用WCF的异步方法
- 陈怡暖:2015.6.3早间现货黄金白银操作建议
- juniper-ssg140开放端口策略
- 记一次云计算测试实验-openstack-icehouse-安装glance
- cocos2d-x打包2.X安卓流程(不使用CWY)
- sql查看数据字典(表结构)
- inodes满了
- linux命令:使用dig解析域名
- 第十二周项目二形状类族的中的纯虚函数
- 第十三周项目2——形状类族中的纯虚函数