📄 inheridj.cpp
字号:
//这个程序在本书所带软盘中。文件名为INHERIDJ.CPP
//这个程序演示怎样利用多级继承从圆的面积计算导出球
//以及球圆柱的体积计算。
#include <iostream.h>
#define pi 3.1415 //定义pi
class circle //定义基类circle
{
protected:
float radius;
public:
circle(float); //构造函数
float vol(); //成员子程序
};
circle::circle(float radius = 0) //编写构造函数
{
circle::radius = radius;
}
float circle::vol(void) //编写成员子程序
{
return(pi * circle::radius * circle::radius);
}
class ball : public circle //从circle导出球ball
{
public: //两个新的成员子程序
ball(float);
float vol();
};
//导出类ball继承了基类circle的构造函数
ball::ball(float radius = 1) : circle(radius)
{
}
float ball::vol(void)
{
return (3/4.0 * circle::radius * circle::vol());
}
class ball_cylinder : public ball //定义导出类ball_cylinder
{ //类ball作为它的基类
private:
float length, c_radius;
public:
ball_cylinder(float, float, float);
//构造函数
float vol(); //成员子程序
};
//类ball_cylinder继承了其基类ball的构造函数
ball_cylinder::ball_cylinder(float radius = 0, float length = 0,
float c_radius = 0) : ball(radius)
{
ball_cylinder::length = length;
ball_cylinder::c_radius = c_radius;
}
float ball_cylinder::vol(void)
{
float v_cylinder;
v_cylinder = pi * ball_cylinder:: radius *
ball_cylinder:: radius * ball_cylinder::length;
return(v_cylinder + ball::vol());
}
/************************** main( ) *********************************/
void main(void)
{
circle circle_1(12.3); //产生一个半径为12.3的圆对象
ball ball_1(10); //产生一个半径为10的球体对象
ball_cylinder ball_cy(10, 8.2, 10);
//产生一个球半径10,柱半径8.2,高10的球柱
cout << "circle_1 的面积是 " << circle_1.vol() << endl;
cout << "ball_1 的体积是 " << ball_1.vol() << endl;
cout << "ball_cy 的体积是 " << ball_cy.vol() << endl;
}
/*这个程序运行后将显示如下输出结果:
circle_1 的面积是 475.278
ball_1 的体积是 2356.12
ball_cy 的体积是 4932.16
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -