定义一个点类(Point)、圆类(Circle)和圆柱体类 (Cylinder)的层次结构。圆包括圆心和半径两个数据成 员,圆心具有点类的所有特征。圆柱体类由半径和高构 成。要求各类提供支持初始化的构造函数和显示自己成 员的成员函数。编写主函数,测试这个层次结构,输出圆 柱体类的相关信息。
时间: 2024-03-01 08:54:36 浏览: 99
8.继承作业答案1
好的,以下是我提供的点类、圆类和圆柱体类的定义:
```c++
// 点类
class Point {
public:
// 构造函数
Point(double x = 0.0, double y = 0.0) : m_x(x), m_y(y) {}
// 显示自己的成员函数
void display() const {
std::cout << "(" << m_x << ", " << m_y << ")";
}
protected:
double m_x; // x 坐标
double m_y; // y 坐标
};
// 圆类
class Circle : public Point {
public:
// 构造函数
Circle(double x = 0.0, double y = 0.0, double r = 0.0) : Point(x, y), m_r(r) {}
// 显示自己的成员函数
void display() const {
std::cout << "圆心坐标为:";
Point::display();
std::cout << ",半径为:" << m_r;
}
protected:
double m_r; // 半径
};
// 圆柱体类
class Cylinder : public Circle {
public:
// 构造函数
Cylinder(double x = 0.0, double y = 0.0, double r = 0.0, double h = 0.0) : Circle(x, y, r), m_h(h) {}
// 显示自己的成员函数
void display() const {
std::cout << "圆柱体顶部圆面的信息为:";
Circle::display();
std::cout << ",高为:" << m_h;
}
protected:
double m_h; // 高
};
```
在主函数中,我们可以创建一个圆柱体对象,并调用它的 `display` 函数来输出圆柱体的信息:
```c++
int main() {
Cylinder cylinder(1.0, 2.0, 3.0, 4.0);
cylinder.display();
return 0;
}
```
输出结果为:
```
圆柱体顶部圆面的信息为:圆心坐标为:(1, 2),半径为:3,高为:4
```
阅读全文