基类Point派生出一个Circle(圆)类,Circle(圆)类再派生出一个Cylinder(圆柱体)类。 基类Point的有数据成员x,y,若干成员函数用于对数据成的操作; Circle(圆)类增加数据成员r(半径),以及求面积的成员函数area,和若干需要的成员函数; Cylinder(圆柱体)类,再增加数据成员h(高),以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,及若干需要的成员函数;
时间: 2023-06-19 18:06:01 浏览: 62
回答:您的问题是关于派生类的继承和成员函数的实现。基类Point派生出Circle类,Circle类再派生出Cylinder类。Circle类增加了数据成员r(半径)和成员函数area(求面积),Cylinder类增加了数据成员h(高)和成员函数area(求圆柱表面积)和volume(求圆柱体积)。在派生类中,可以使用关键字“:”指定基类的名称和访问权限。可以重载函数,在派生类中定义新的函数,也可以继承基类中的函数。总之,派生类可以从基类中继承属性和方法,并且可以新增自己的属性和方法。
相关问题
先建立一个点类point,包含数据成员x,y(坐标点)。以它为基类,派生出圆类circle,增加数据成员radius(半径),再以cirlcle类为直接基类,派生出圆柱体类cylinder,再增加数据
题目中先建立一个点类 Point,包含数据成员 x, y(坐标点)。以它为基类,派生出圆类 Circle,增加数据成员 radius(半径),再以 Circle 类为基类,派生出圆柱体类 Cylinder,增加数据成员 height(高),再增加数据成员 volume(体积)。
首先构建一个Point(点)类,包含数据成员x、y(坐标点)。以它为基类,派生出一个Circle(圆)类,增加数据成员r(半径),再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高)。并且重载运算符“<<”,使之能用于输出Cylinder类的对象。最后在主函数中实例化Cylinder类,并通过cout显示。
下面是代码实现:
```c++
#include<iostream>
using namespace std;
class Point{ // 基类Point
public:
int x, y;
};
class Circle: public Point{ // 派生类Circle
public:
int r;
};
class Cylinder: public Circle{ // 派生类Cylinder
public:
int h;
friend ostream& operator<<(ostream& os, const Cylinder& cy){
os << "圆柱体的底部中心坐标为 (" << cy.x << ", " << cy.y << "), 半径为 " << cy.r << ", 高为 " << cy.h << endl;
return os;
}
};
int main(){
Cylinder cy;
cy.x = 0;
cy.y = 0;
cy.r = 3;
cy.h = 5;
cout << cy; // 输出圆柱体信息
return 0;
}
```
输出结果为:
```
圆柱体的底部中心坐标为 (0, 0), 半径为 3, 高为 5
```