第13周上机实践项目3——立体类族共有的抽象类
2015-05-31 17:52
330 查看
设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。
代码
运行结果:
代码
#include <iostream> using namespace std; class CSolid { public: virtual double area()=0; virtual double Volume()=0; virtual void show()=0; }; class CCube:public CSolid { protected: double length; public: CCube(double l):length(l){} double area() { return 6*length*length; } double Volume() { return length*length*length; } void show() { cout<<"正方体的表面积为"<<area()<<","<<"体积为"<<Volume()<<endl; } }; class CBall:public CSolid { protected: double r; public: CBall(double rr):r(rr){} double area() { return 4*3.14*r*r; } double Volume() { return (4.0/3.0)*3.14*r*r*r; } void show() { cout<<"球体的表面积为"<<area()<<","<<"体积为"<<Volume()<<endl; } }; class CCylinder:public CSolid { protected: double r,h; public: CCylinder (double rr,double hh):r(rr),h(hh){} double area() { return 2*3.14*r*r+3.14*r*2*h; } double Volume() { return 3.14*r*r*h; } void show() { cout<<"圆柱体的表面积为"<<area()<<","<<"体积为"<<Volume()<<endl; } }; int main() { CSolid *p; CCube p1(1); CBall p2(1); CCylinder p3(1,1); p=&p1; p->show(); p=&p2; p->show(); p=&p3; p->show(); return 0; }
运行结果:
相关文章推荐
- 评教的感触
- Unicode字符集和多字节字符集
- 关于ListView控件下拉崩溃的注意事项
- 基于qt的嵌入式平台输入法:SYSZUXpinyin移植到arm后,UDP接收端中文乱码 本地中文乱码 解决
- u-boot,内核文件打补丁。tar patch 命令
- 欢迎使用CSDN-markdown编辑器
- [DP][rqnoj72]拔河比赛
- 第十三周项目四 链表类
- lua 学习笔记 三 & 四
- Android:控件WebView显示网页
- Sublime Text3 - 安装Package Control插件管理
- No module named http_client
- [模拟][NOIP2014]无线网路发射器选址
- Udp显示中文的方法
- Android基础之AndroidManifest.xml配置文件详解
- Spring aop--几种不同的使用方式
- 自己作的死,自己搞定
- 高级编程语言的发展
- SGU121 Bridges painting
- Django model