实现1个简单的二维点类。构造函数可以用初始化列表实现对数据成员的初 始化。 (1)实现各个成员函数。 (2)实现Point 类中的成员函数getDistance,计算两点之间距离。 (3)定义普通函数getDistance,计算2 点之间距离 从键盘输入两点的坐标,分别用成员函数和普通函数计算这两点的距离。已知部分代码为#include <iostream> #include <cmath> using namespace std; class Point { public: Point( double newX=0, double newY=0); void setValue(double newX, double newY); double getX( ); double getY(); double getDistance(Point& p2); //成员函数计算距离 private: double x, y; }; double getDistance(Point& p1, Point& p2); //普通函数计算距离 int main() { Point p1,p2; double x1,y1,x2,y2; cin>>x1>>y1>>x2>>y2; p1.setValue(x1,y1); p2.setValue(x2,y2); double dis1 = p1.getDistance(p2); //成员函数版本计算 cout<<"Distance: "<<dis1<<endl; double dis2 = getDistance(p1,p2); //普通函数版本计算 cout<<"Distance: "<<dis2<<endl; return 0; } /* 请在这里填写答案 */
时间: 2024-02-04 17:04:05 浏览: 97
答案如下:
```
#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
Point(double newX = 0, double newY = 0) : x(newX), y(newY) {} // 初始化列表初始化数据成员
void setValue(double newX, double newY) {
x = newX;
y = newY;
}
double getX() {
return x;
}
double getY() {
return y;
}
double getDistance(Point& p2) { // 成员函数计算距离
double dx = x - p2.getX();
double dy = y - p2.getY();
return sqrt(dx * dx + dy * dy);
}
private:
double x, y;
};
double getDistance(Point& p1, Point& p2) { // 普通函数计算距离
double dx = p1.getX() - p2.getX();
double dy = p1.getY() - p2.getY();
return sqrt(dx * dx + dy * dy);
}
int main() {
Point p1, p2;
double x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
p1.setValue(x1, y1);
p2.setValue(x2, y2);
double dis1 = p1.getDistance(p2); // 成员函数版本计算
cout << "Distance: " << dis1 << endl;
double dis2 = getDistance(p1, p2); // 普通函数版本计算
cout << "Distance: " << dis2 << endl;
return 0;
}
```
阅读全文