编写一个c++程序,设计一个用来表示直角坐标系的Location类,分别采用成员函数和友元函数计算给定两个坐标点之间的距离。
时间: 2024-03-23 17:39:49 浏览: 124
好的,这是一个简单的c++程序,实现了一个Location类,可以计算任意两点之间的距离,包括成员函数和友元函数的实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Location {
private:
double x, y; // 坐标点
public:
Location(double x = 0, double y = 0) : x(x), y(y) {}
double distance(Location &p) { // 成员函数计算距离
double dx = x - p.x;
double dy = y - p.y;
return sqrt(dx * dx + dy * dy);
}
friend double distance(Location &p1, Location &p2); // 友元函数计算距离
};
double distance(Location &p1, Location &p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return sqrt(dx * dx + dy * dy);
}
int main() {
Location p1(1, 2), p2(3, 4);
cout << "成员函数计算距离:" << p1.distance(p2) << endl;
cout << "友元函数计算距离:" << distance(p1, p2) << endl;
return 0;
}
```
在这个程序中,Location类有两个私有成员变量 x 和 y,它们表示一个点的坐标。Location类有一个成员函数 distance,用来计算两个点之间的距离。Location类也有一个友元函数 distance,用来计算两个点之间的距离。在 main 函数中,我们创建了两个 Location 类型的对象 p1 和 p2,并使用成员函数和友元函数计算它们之间的距离。
阅读全文