第13周上机实践项目3——立体类族共有的抽象类
来源:互联网 发布:淘宝一般用什么快递 编辑:程序博客网 时间:2024/05/17 23:20
设计一个抽象类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;}
运行结果:
0 0
- 第13周上机实践项目3——立体类族共有的抽象类
- 第十三周上机实践——项目4-立体类族共有的抽象类
- 第十四周上机实践项目——立体类族共有的抽象类
- 第13周项目3—立体类族共有的抽象类
- 第十三周上机实践项目4:立体类族共有的抽象类
- 第13周实践项目4立体类族共有的抽象类
- 第13周实践项目4立体类族共有的抽象类
- 第13周项目4—立体类族共有的抽象类
- 第十三周实践项目4————立体类族共有的抽象类
- 第十三周 课后实践:项目三——立体类族共有的抽象类
- 第13周实践项目-立体族类共有的抽象类
- 第13周项目3立体类族共有的抽象类
- 第13周-多态性-项目3-立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周 【项目3-立体类族共有的抽象类】
- 第13周项目3-立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 高级编程语言的发展历程(机器语言、汇编语言、高级语言)
- 关于ListView控件下拉崩溃的注意事项
- [DP][rqnoj72]拔河比赛
- 线程同步 资源锁定(三)Event_CoundownEvent
- maven快速安装配置
- 第13周上机实践项目3——立体类族共有的抽象类
- u-boot,内核文件打补丁。tar patch 命令
- [iuud8]基于cocos2dx3.2自定义圆周运动
- yum源的超级简单配置
- G.711编解码原理
- android基础之Handler的使用(一)
- jquer兄弟节点问题(购物评价星星)
- 介绍ModelViewPresenter在Android中的应用
- 实践