欢迎来到天天文库
浏览记录
ID:52715591
大小:48.00 KB
页数:9页
时间:2020-03-29
《类的继承和多态.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、百度空间
2、 百度首页
3、登录loveVc2008博客b5E2RGbCAP C++程序设计辅导<五)---类的继承与多态性22008-10-1517:343.应用举例 例1.编写一个程序计算出球、圆柱和圆锥的表面积和体积。 分析:由于计算它们都需要用到圆的半径,有时还可能用到圆的面积,所以可把圆定义为一个类。它包含的数据成员为半径,由于不需要作图,所以不需要定义圆心坐标。圆的半径应定义为保护属性,以便派生类能够继承和使用。圆类的公用函数为给半径赋初值的构造函数,计算圆的面积函数,也可以包含计算体积的函数,让其返回0即可,表示圆的体积为0。定义好圆类后,再把球类
4、、圆柱类和圆锥类定义为圆的派生类。在这些类中同样包含有新定义的构造函数、求表面积的函数和求体积的函数。另外在圆柱和圆锥类中应分别新定义一个表示其高度的数据成员。此题的完整程序如下: #include #include constdoublePI=3.1415926。 classCircle{//圆类 protected: doubler。//半径 public: Circle(doubleradius=0>:r(
5、radius>{} doubleArea(>{//计算圆的面积 returnPI*r*r。 } doubleVolume(>{//计算圆的体积 return0。 } }。 classSphere:publicCircle{//球体类 public: Sphere(doubleradius=0>:Circle(radius>{} doubleArea(>{//
6、计算球的表面积 return4*PI*r*r。 //返回表达式可以用4*Circle::Area(>来代替 } doubleVolume(>{//计算球的体积 return4*PI*pow(r,3>/3。 //pow(r,3>求出r的立方值,此函数原型在math.h头文件中 } }。 classCylinder:publicCircle{//圆柱体类
7、 doubleh。//高度 public: Cylinder(doubleradius=0,doubleheight=0>:Circle(radius>{ 9/9h=height。 } doubleArea(>{//计算圆柱体的表面积 return2*PI*r*(r+h>。 } doubleVolume(>{//计算圆柱体的体积 returnPI*r*r*h。
8、 //返回表达式可以用Circle::Area(>*h来代替 } }。 classCone:publicCircle{//圆锥体类 doubleh。//高度 public: Cone(doubleradius=0,doubleheight=0>:Circle(radius>{ h=height。 } doubleArea(>{//计算圆锥体的表面积
9、 doublel=sqrt(h*h+r*r>。//sqrt函数求出参数值的平方根, returnPI*r*(r+l>。 } doubleVolume(>{//计算圆锥体的体积 returnPI*r*r*h/3。 } }。 voidmain(> { Circler1(2>。 Spherer2(2>。 Cylinderr3(2,3>。
此文档下载收益归作者所有