pointDis(Point \\\\&p1,Point \\\\&p2);
时间: 2023-09-23 20:12:51 浏览: 31
Sorry, I cannot answer this question as it is not a complete sentence or question. Could you please rephrase or provide more context for your question?
相关问题
这段代码什么意思public: Point(double x = 0, double y = 0) : x(x), y(y) {} double getX() const { return x; } double getY() const { return y; } friend double distance(const Point& p1, const Point& p2); friend double area(const Point& p1, const Point& p2); };
这段代码定义了一个名为Point的类,并声明了三个成员函数和一个友元函数。其中:
- Point是一个类名,表示这个类的名称为Point。
- Point(double x = 0, double y = 0)是一个构造函数,用于创建一个Point类的对象。这个构造函数接受两个参数,分别是double类型的x和y,这些参数都有默认值0。在构造函数体中,使用了成员初始化列表来初始化类的成员变量x和y,这里的x(x)和y(y)表示将传入的参数x和y分别赋值给类的成员变量x和y。
- double getX() const { return x; } 是一个成员函数,用于获取Point对象的x坐标值。这个函数没有参数,返回类型是double,同时使用了const关键字,表示这个函数不会修改类的成员变量。
- double getY() const { return y; } 是一个成员函数,用于获取Point对象的y坐标值。这个函数没有参数,返回类型是double,同时使用了const关键字,表示这个函数不会修改类的成员变量。
- friend double distance(const Point& a, const Point& b);是一个友元函数,用于计算两个Point对象之间的距离。这个函数并不是Point类的成员函数,但是由于使用了friend关键字,因此可以访问Point类的私有成员变量。这个函数接受两个参数,分别是const引用类型的Point对象a和b,返回值类型是double。
综合来看,这段代码定义了一个表示二维平面上的点的Point类,并提供了获取x和y坐标的函数,以及计算两个点之间距离的友元函数。
定义一个二维坐标点类Point 数据成员(访问权限定义为protected): 横坐标、纵坐标 成员函数(访问权限定义为public): 带默认参数的构造函数:数据成员初始化 Point(double _x = 0.0, double _y = 0.0); 拷贝构造函数:数据成员初始化 Point(const Point &point); 设置横坐标 设置纵坐标 获取横坐标(定义为const成员函数) 获取纵坐标(定义为const成员函数) 打印点的坐标信息(定义为const成员函数),格式:(x, y) 要求:将类的定义与类成员函数的实现分开。 定义一个普通函数用来计算两个Point对象的距离: double pdistance(const Point &p1, const Point &p2); 并将pdistance函数声明为类Point的友元函数,使其能够直接访问Point的保护数据成员。 定义一个普通函数用来计算两个Point对象的中点: Point midpoint(const Point &p1, const Point &p2); 并将midpoint函数声明为类Point的友元函数,使其能够直接访问Point的保护数据成员。
类Point的定义:
```c++
class Point {
protected:
double x;
double y;
public:
Point(double _x = 0.0, double _y = 0.0);
Point(const Point &point);
void setX(double _x);
void setY(double _y);
double getX() const;
double getY() const;
void print() const;
friend double pdistance(const Point &p1, const Point &p2);
friend Point midpoint(const Point &p1, const Point &p2);
};
```
类Point的实现:
```c++
Point::Point(double _x, double _y) : x(_x), y(_y) {}
Point::Point(const Point &point) {
x = point.x;
y = point.y;
}
void Point::setX(double _x) {
x = _x;
}
void Point::setY(double _y) {
y = _y;
}
double Point::getX() const {
return x;
}
double Point::getY() const {
return y;
}
void Point::print() const {
cout << "(" << x << ", " << y << ")" << endl;
}
double pdistance(const Point &p1, const Point &p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return sqrt(dx * dx + dy * dy);
}
Point midpoint(const Point &p1, const Point &p2) {
double mx = (p1.x + p2.x) / 2.0;
double my = (p1.y + p2.y) / 2.0;
return Point(mx, my);
}
```