用C++定义Point类描述点,并加入一个友元函数计算两点间距离。利用Point类设计描述圆的Circle类,包括圆心(Point类的点)、半径,构造函数初始化圆,成员函数判断某个点m是否在圆周上。设计main()函数,以(1,2)为圆心、5为半径、m为(6,2)进行测试。
时间: 2024-03-27 18:37:08 浏览: 81
好的,这是一个关于C++类的问题,以下是代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
Point(double x, double y) : x(x), y(y) {}
friend double distance(Point& a, Point& b);
private:
double x, y;
};
double distance(Point& a, Point& b) {
return sqrt(pow(a.x - b.x, 2) + pow(a.y - b.y, 2));
}
class Circle {
public:
Circle(double x, double y, double r) : center(x, y), radius(r) {}
bool is_on_circle(Point& m) {
return distance(center, m) == radius;
}
private:
Point center;
double radius;
};
int main() {
Point m(6, 2);
Circle c(1, 2, 5);
if (c.is_on_circle(m)) {
cout << "Point m is on the circle." << endl;
} else {
cout << "Point m is not on the circle." << endl;
}
return 0;
}
```
在上述代码中,`Point` 类表示一个点,`Circle` 类表示一个圆,`Circle` 类中包含一个 `Point` 对象作为圆心,一个半径。`Circle` 类中的 `is_on_circle()` 函数可用于判断某个点是否在圆周上。在 `main()` 函数中,我们创建了一个点 `m` 和一个圆 `c`,并使用 `is_on_circle()` 函数判断 `m` 是否在圆 `c` 上。
阅读全文