📄 inherivd.cpp
字号:
//这个程序在本书所带软盘中。文件名为INHERIVD.CPP
//这个程序演示怎样利用单继承直接编程方式从圆的面积计算导出球、圆柱
//以及圆锥的体积计算。
#include <iostream.h>
#define pi 3.1415 //定义pi
class circle //定义基类
{
protected:
float radius;
public:
circle(float r = 1) //直接构造函数编写方式
{
radius = r;
}
float vol(void) //直接成员子程序编写方式
{
return(pi * radius * radius);
}
};
class ball : public circle //从圆导出球体
{
public:
ball(float r = 1) : circle(r) {}
//直接构造函数编写方式
float vol(void) //直接成员子程序编写方式
{
return (3/4.0 * radius * circle::vol());
}
};
class cylinder : public circle //从圆导出圆柱体
{
private:
float length;
public:
cylinder(float r = 1, float l = 1) : circle(r)
//直接构造函数编写方式
{
length = l;
}
float vol(void) //直接成员子程序编写方式
{
return (length * circle::vol());
}
};
class taper : public circle //从圆导出圆锥体
{
private:
float height;
public:
taper(float r = 1, float h = 1) : circle(r)
//直接构造函数编写方式
{
height = h;
}
float vol(void) //直接成员子程序编写方式
{
return(1/3.0 * height * circle::vol());
}
};
/********************* main() ************************/
void main(void)
{
circle circle_1, //产生一个单位圆对象
circle_2(12.3); //产生一个半径为12.3的圆对象
ball ball_a(10); //产生一个半径为10的球体对象
ball ball_1; //产生一个单位球体对象
cylinder pole(10, 8.2); //产生一个半径为10, 高度为8.2的圆柱对象
taper taper_1, //产生一个单位圆锥体对象
taper_2(5, 19.5); //产生一个半径为5,高度为19.5的圆锥体对象
cout << "circle_1 的面积是 " << circle_1.vol() << endl;
cout << "circle_2 的面积是 " << circle_2.vol() << endl;
cout << "ball_a 的体积是 " << ball_a.vol() << endl;
cout << "ball_1 的体积是 " << ball_1.vol() << endl;
cout << "pole 的体积是 " << pole.vol() << endl;
cout << "taper_1的体积是 " << taper_1.vol() << endl;
cout << "taper_2的体积是 " << taper_2.vol() << endl;
}
/*这个程序运行后将显示如下输出结果:
circle_1 的面积是 3.1415
circle_2 的面积是 475.278
ball_a 的体积是 2356.12
ball_1 的体积是 2.35613
pole 的体积是 2576.03
taper_1的体积是 1.04717
taper_2的体积是 510.494
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -