博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第十三周项目3-立体类族共有的抽象类
阅读量:5944 次
发布时间:2019-06-19

本文共 1582 字,大约阅读时间需要 5 分钟。

设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。

main()函数使用的贺老上的。

/** Copyright (c) 2015,烟台大学计算机学院* All right reserved.* 作者:邵帅* 文件:Demo.cpp* 完成时间:2015年06月07日* 版本号:v1.0*/#include 
#include
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 "<
area(); v=p->volume(); cout<<"表面积:"<
<
area(); v=p->volume(); cout<<"表面积:"<
<
area(); v=p->volume(); cout<<"表面积:"<
<
运行结果:

@ Mayuko

转载于:https://www.cnblogs.com/mayuko/p/4567470.html

你可能感兴趣的文章
Activiti6.0,spring5,SSM,工作流引擎,OA
查看>>
第十三章:SpringCloud Config Client的配置
查看>>
使用 GPUImage 实现一个简单相机
查看>>
CoinWhiteBook:区块链在慈善事业中的应用
查看>>
Mac上基于Github搭建Hexo博客
查看>>
阿里云服务器ECS开放8080端口
查看>>
Spring中实现监听的方法
查看>>
使用Tooltip会出现一个问题,如果行上出现复选框
查看>>
11.03T1 DP
查看>>
P2924 [USACO08DEC]大栅栏Largest Fence
查看>>
jQuery操作table tr td
查看>>
工作总结:MFC自写排序算法(升序)
查看>>
螺旋队列问题之二
查看>>
扩展运算符和解构赋值的理解
查看>>
手机H5显示一像素的细线
查看>>
Menu 菜单栏
查看>>
Integer跟int的区别(备份回忆)
查看>>
集合解析
查看>>
详解分布式应用程序协调服务Zookeeper
查看>>
软件工程之构建之法
查看>>