设计类 Point,包含横、纵两个坐标数据。由类 Point 派生出类 Circle,Circle 中包含圆的半径数据,并能够计算圆的面积。给出类 Point 和 Circle 的定义与实现。
时间: 2024-03-24 19:38:56 浏览: 69
用面向对象的方法,设计一个圆的类,包括计算圆的直径、圆的周长和圆的面积的方法。
好的,以下是代码实现:
```c++
#include <iostream>
using namespace std;
const double PI = 3.1415926535;
// 定义 Point 类
class Point {
public:
Point(int x = 0, int y = 0) : m_x(x), m_y(y) {} // 构造函数
void setX(int x) { m_x = x; } // 设置横坐标
void setY(int y) { m_y = y; } // 设置纵坐标
int getX() { return m_x; } // 获取横坐标
int getY() { return m_y; } // 获取纵坐标
private:
int m_x; // 横坐标
int m_y; // 纵坐标
};
// 定义 Circle 类,公有继承自 Point 类
class Circle : public Point {
public:
Circle(int x = 0, int y = 0, double r = 0) : Point(x, y), m_radius(r) {} // 构造函数
void setRadius(double r) { m_radius = r; } // 设置半径
double getRadius() { return m_radius; } // 获取半径
double getArea() { return PI * m_radius * m_radius; } // 计算面积
private:
double m_radius; // 半径
};
int main() {
Circle c(0, 0, 5); // 创建一个半径为5,中心坐标为(0, 0)的圆
cout << "圆的面积为:" << c.getArea() << endl;
return 0;
}
```
在上述代码中,首先定义了`Point`类,包含横、纵两个坐标数据,并提供了构造函数和设置、获取坐标数据的函数。然后定义了`Circle`类,它公有继承自`Point`类,并增加了圆的半径属性,并提供了构造函数、设置、获取半径数据的函数,以及计算圆面积的函数。在`main()`函数中,创建了一个半径为5,中心坐标为(0, 0)的圆,并输出了它的面积。
阅读全文