编程题:多级继承 基类Point派生出一个Circle(圆)类,Circle(圆)类再派生出一个Cylinder(圆柱体)类。 基类Point的有数据成员x,y,若干成员函数用于对数据成的操作; Circle(圆)类增加数据成员r(半径),以及求面积的成员函数area,和若干需要的成员函数; Cylinder(圆柱体)类,再增加数据成员h(高),以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,及若干需要的成员函数; 每个类都有若干构造函数及析构函数。设计main函数完成测试。
时间: 2023-06-19 20:06:00 浏览: 289
好的,以下是多级继承的代码实现:
```c++
#include<iostream>
using namespace std;
class Point
{
protected:
double x, y; // 坐标
public:
Point(double x = 0, double y = 0) :x(x), y(y) {};
~Point() {};
};
class Circle :public Point // 圆类
{
protected:
double r; // 半径
public:
Circle(double x = 0, double y = 0, double r = 0) :Point(x, y), r(r) {};
double area() { // 求面积
return 3.14 * r * r;
}
~Circle() {};
};
class Cylinder :public Circle // 圆柱体类
{
protected:
double h; // 高
public:
Cylinder(double x = 0, double y = 0, double r = 0, double h = 0) :Circle(x, y, r), h(h) {};
double area() { // 求表面积
return 2 * 3.14 * r * (r + h);
}
double volume() { // 求体积
return 3.14 * r * r * h;
}
~Cylinder() {};
};
int main()
{
Cylinder c(1, 1, 2, 3); // 给定圆心、半径、高
cout << "面积:" << c.area() << endl;
cout << "体积:" << c.volume() << endl;
return 0;
}
```
运行结果为:
```
面积:62.8
体积:37.68
```
希望能够帮到你,如果还有其他问题可以继续提出。
阅读全文