定义一个继承与派生关系的类体系,在派生类中访问基类成员。 1 定义一个点类,包含 x, y 坐标数据成员,再定义显示函数和计算面积的数据成员。 2 以点类为基类,派生一个原类,增加一个表示半径的数据成员,重载显示和计算面积 的函数。 3 定义一个线段类,以两个点类对象作为数据成员,定义显示,面积,长度的函数。 4 建立主程序,定义一个点类,一个圆类,一个线段类,分别调用显示点类,圆类,线 段类的面积或者长度的函数。
时间: 2024-04-17 20:26:57 浏览: 281
声明一个图形基类并在它的基础上派生出其他类并编写程序实现各类的定义及实现
根据您的需求,我为您提供了一个基类 Point,派生类 Circle 和 LineSegment 的类体系的示例代码。请注意以下代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Point {
protected:
double x; // x坐标
double y; // y坐标
public:
Point(double xCoord, double yCoord) : x(xCoord), y(yCoord) {}
void display() {
cout << "Point: (" << x << ", " << y << ")" << endl;
}
};
class Circle : public Point {
private:
double radius; // 半径
public:
Circle(double xCoord, double yCoord, double r) : Point(xCoord, yCoord), radius(r) {}
void display() {
Point::display();
cout << "Circle Radius: " << radius << endl;
}
double calculateArea() {
return M_PI * radius * radius;
}
};
class LineSegment {
private:
Point startPoint; // 起点
Point endPoint; // 终点
public:
LineSegment(const Point& start, const Point& end) : startPoint(start), endPoint(end) {}
void display() {
cout << "Line Segment: " << endl;
cout << "Start Point: ";
startPoint.display();
cout << "End Point: ";
endPoint.display();
}
double calculateLength() {
double dx = startPoint.x - endPoint.x;
double dy = startPoint.y - endPoint.y;
return sqrt(dx * dx + dy * dy);
}
};
int main() {
Point p(2.0, 3.0);
Circle c(1.0, 1.0, 2.5);
LineSegment l(p, Point(5.0, 5.0));
p.display();
cout << "Circle Area: " << c.calculateArea() << endl;
l.display();
cout << "Line Segment Length: " << l.calculateLength() << endl;
return 0;
}
```
在上述代码中,我们定义了一个基类 Point,它有两个数据成员 x 和 y,表示点的坐标。Point 类有一个 display 函数用于显示点的坐标。然后,我们派生了 Circle 类,它继承了 Point 类,并增加了一个表示半径的数据成员 radius。Circle 类重载了 display 函数,显示了点的坐标和圆的半径,并且还定义了一个 calculateArea 函数用于计算圆的面积。
另外,我们定义了 LineSegment 类,它有两个数据成员 startPoint 和 endPoint,分别表示线段的起点和终点。LineSegment 类也有一个 display 函数,用于显示线段的起点和终点坐标,并且还定义了一个 calculateLength 函数用于计算线段的长度。
在主程序中,我们创建了一个 Point 对象 p,一个 Circle 对象 c,和一个 LineSegment 对象 l。然后分别调用它们的显示函数和计算面积(圆的情况)或长度(线段的情况)函数来展示结果。
阅读全文