第十三周项目3-立体类族共有的抽象类
2015-06-07 22:35
477 查看
设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。
main()函数使用的贺老上的。
![](http://img.blog.csdn.net/20150607223734831?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWF5dWtvMjAxMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
@ Mayuko
main()函数使用的贺老上的。
/* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp * 完成时间:2015年06月07日 * 版本号:v1.0 */ #include <iostream> #include <string> using namespace std; const double pi=3.14; class CSolib { public: virtual double area()=0; virtual double volume()=0; }; class CCube:public CSolib { private: double length; public: CCube(double l):length(l){} double area(); double volume(); }; double CCube::area() { return (6*length*length); } double CCube::volume() { return (length*length*length); } class CBall:public CSolib { private: double radius; public: CBall(double r):radius(r){} double area(); double volume(); }; double CBall::area() { return (4*pi*radius*radius); } double CBall::volume() { return (pi*radius*radius*radius*4/3); } class CCylinder:public CSolib { private: double radius; double height; public: CCylinder(double r,double h):radius(r),height(h){} double area(); double volume(); }; double CCylinder::area() { return (2*pi*radius*radius+2*pi*radius*height); } double CCylinder::volume() { return (pi*radius*radius*height); } int main() { CSolib *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; }运行结果:
@ Mayuko
相关文章推荐
- Remove Duplicates from Sorted List II ——LeetCode
- AppStore App申请审核加速
- UNP---套接字简介
- 比CMD更强大的命令行WMIC
- jQuery对表单、表格的操作及更多应用(下:其他应用)
- POJ 2774 最长公共子串
- Pig distinct用法举例
- Java:基本语法
- Ant详解
- IOS之C语言进制转换
- hdu5266 LCA 倍增法
- Pig group用法举例
- ASP.NET WebForm Form表单如何实现MVC那种“自动装配”效果呢?
- SOA实践之基于服务总线的设计
- 2014中国大数据行业大调查:开发者究竟需要什么?
- PHP会话处理相关函数介绍
- jQuery对表单、表格的操作及更多应用(中:表格应用)
- 程序员
- 矩阵替换
- Json数据解析