14-3立体类族共有的抽象类
来源:互联网 发布:淘宝能看买家退货率吗 编辑:程序博客网 时间:2024/06/05 14:23
/* Copyright (c) 2012, 烟台大学计算机学院* All rights reserved.* 文件名称:text.cpp* 作 者: 胡颖*完成日期:2013年6月4日* 版 本 号:v1.0** 输入描述:无* 问题描述:设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积。* 程序输出:输出定义的几个立体的体积和表面积* 问题分析:无* 算法设计:略*/#include <iostream>using namespace std;//抽象类CSolidclass CSolid{public: virtual double surfaceArea() const =0;//表面积的纯虚函数 virtual double volume() const =0;//体积的纯虚函数};//派生CCube(正方体)类class CCube:public CSolid{public: CCube(double len):length(len) {} virtual double surfaceArea() const { return 6*length*length; } virtual double volume() const { return length*length*length; }private: double length;};//派生CBall(球体)类class CBall:public CSolid{public: CBall(double r):radius(r) {} virtual double surfaceArea() const { return 4*3.1415926*radius*radius; } virtual double volume() const { return (4/3)*3.1415926*radius*radius*radius; }private: double radius;};//派生CCylinder(圆柱体)类class CCylinder:public CSolid{public: CCylinder(double r,double h):radius(r),height(h) {} virtual double surfaceArea() const { return 2*3.1415926*radius*radius+2*3.1415926*radius*height; } virtual double volume() const { return 3.1415926*radius*radius*height; }private: double radius; double height;};int main(){ CSolid *p; double s,v; //输出正方体表面积及体积 CCube x(30); cout<<"正方体边长为30:"<<endl; p=&x; s=p->surfaceArea(); v=p->volume(); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; //输出球体表面积及体积 CBall y(4.5); cout<<"球体半径为4.5:"<<endl; p=&y; s=p->surfaceArea(); v=p->volume(); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; //输出圆柱体的表面积及体积 CCylinder z(10,20); cout<<"圆柱体半径为10,高为20:"<<endl; p=&z; s=p->surfaceArea(); v=p->volume(); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; return 0;}
运行结果:
- 14-3立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- URL中的特殊字符处理笔记
- 数据库操作SQL语句汇总
- 技术经验总结
- jQuery的.each迭代调用方法
- android windows 下面的android sdk 和avd 安装好不显示
- 14-3立体类族共有的抽象类
- hbase 多用户写操作 regionserver突然宕掉(二)
- 理解Android系统的进程间通信原理----RPC中的代理模式
- python inconsistent use of tabs and spaces in indentation
- JS操作SELECT表单大全,赋默认值,取值,增,删等
- 木马后门常用到的API
- C/C++中产生随机数(rand,srand用法)
- Android键盘输入语言设置默认打开myanmar 缅甸语
- Android 图片缓存防止OutOfMemoryError异常