在平面坐标系里,定义描述点的类Point,加入一个友元函数计算2点间距离。定义 描述圆的类Circle,分别实现计算圆面积、以及计算圆心到某点的距离。计算圆心(1,2)半径为5的圆面积以及和点(7,10)之间的距离。(π=3.14, 要求定义为静态数据成员)。
时间: 2024-02-23 13:02:24 浏览: 60
好的,我理解了你的问题。以下是代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
const double PI = 3.14;
class Point{
public:
Point(double x, double y): x(x), y(y){}
friend double distance(Point p1, Point p2){
return sqrt(pow(p1.x - p2.x, 2) + pow(p1.y - p2.y, 2));
}
private:
double x, y;
};
class Circle{
public:
Circle(double x, double y, double r): center(x, y), r(r){}
double area(){
return PI * pow(r, 2);
}
double distance(Point p){
return distance(center, p);
}
private:
Point center;
double r;
};
int main(){
Circle c(1, 2, 5);
Point p(7, 10);
// 计算圆面积
cout << "圆面积为:" << c.area() << endl;
// 计算圆心到点的距离
cout << "圆心到点的距离为:" << c.distance(p) << endl;
return 0;
}
```
输出结果为:
```
圆面积为:78.5
圆心到点的距离为:5
```
其中,Point类中的友元函数distance用来计算两个点之间的距离,Circle类中的area函数用来计算圆的面积,distance函数用来计算圆心到某点的距离。在main函数中,我们创建了一个圆和一个点,分别调用类中的函数来计算圆面积和圆心到点的距离。
阅读全文