⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inheridj.cpp

📁 高永强 全C编程源码 清华大学出版社 2002年六月第一版
💻 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 + -