第十三周 项目3-立体类族共有的抽象类
来源:互联网 发布:淘宝店铺标志源码 编辑:程序博客网 时间:2024/05/16 09:32
项目3-立体类族共有的抽象类】
运行结果:
设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。
/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:d.cpp*作 者:张旺华*完成日期:2015年5月27日*版 本 号:v1.0*/#include <iostream>#include <cmath>using namespace std;class CSolid{public: virtual double area()const=0; virtual double Volume() const=0;};class CCube :public CSolid{private: double a;public: CCube(double n):a(n) {} double area()const; double Volume() const;};double CCube::area()const{ return a*a*6;}double CCube::Volume() const{ return a*a*a;}class CBall :public CSolid{private: double a;public: CBall(double n):a(n){} double area()const; double Volume() const;};double CBall::area()const{ return 4*3.14159*a*a;}double CBall::Volume() const{ return 3.14159*a*a*a*4/3;}class CCylinder :public CSolid{private: double a,b;public: CCylinder(double m,double n):a(m),b(n) {} double area()const; double Volume() const;};double CCylinder::area()const{ return 3.14159*a*a+3.14159*2*a*b;}double CCylinder::Volume() const{ return 3.14159*a*a*b;}int main( ){ CSolid *p; double s,v; CCube x(30); cout<<"立方体边长为 30 "<<endl; p=&x; s=p->area( ); v=p->Volume( ); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; CBall y(4.5); cout<<"球体半径为 4.5 "<<endl; p=&y; s=p->area( ); v=p->Volume( ); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; CCylinder z(10,20); cout<<"圆柱体底面半径、高分别为 10, 20"<<endl; p=&z; s=p->area( ); v=p->Volume( ); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; return 0;}
运行结果:
知识点应用及心得:
在使用抽象类后体现指针的优点,如:
p=&x;
s=p->area( );
v=p->Volume( );
简化了步骤与代码。
0 0
- 第十三周项目:立体类族共有的抽象类
- 第十三周项目-4-立体族类共有的抽象类
- 第十三周 项目3-立体类族共有的抽象类
- 第十三周 项目3-立体类族共有的抽象类
- 第十三周项目3-立体类族共有的抽象类
- 第十三周【项目3-立体类族共有的抽象类】
- 第十三周项目3-立体类族共有的抽象类
- 第十三周项目3——【立体类族共有的抽象类】
- 第十三周项目3 立体类族共有的抽象类
- 第十三周【项目3-立体类族共有的抽象类】
- 第十三周 项目3-立体类族共有的抽象类
- 第十三周 项目3-立体类族共有的抽象类
- 第十三周项目3——立体类族共有的抽象类
- 第十三周项目3--立体类族共有的抽象类
- 第十三周项目3:立体类族共有的抽象类
- 第十三周项目3-立体类族共有的抽象类
- 第十三周项目3-立体类族共有的抽象类
- 第十三周(立体类族共有的抽象类)
- APUE-CH3 文件IO(1)
- [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
- 【RMAN】RMAN脚本中使用替换变量
- Masonry介绍与使用实践(快速上手Autolayout)
- c# event事件编译后变成了什么?
- 第十三周 项目3-立体类族共有的抽象类
- 详解Linux内核之双向循环链表
- CentOS下安装Xdebug,php环境使用Xampp
- 原码, 反码, 补码 详解
- description
- 优盘隐藏分区删除
- 斐波那契数列与阶乘---递归实现
- JAVA replace和relaceAll的问题
- iOS8打开通过代码打开设置界面