C++自定义类表示点(Point)。 要求: 1、有成员属性x,y分别表示点的二维坐标值(整型即可)。 2、将x,y设为私有属性,并提供公开的get,set函数。 3、有合理的构造函数。
时间: 2024-03-01 19:55:22 浏览: 179
好的,您的问题是如何用 C++ 自定义类表示点(Point),我可以给您一个示例代码,满足您的要求:
```cpp
class Point {
private:
int x;
int y;
public:
Point(int x = 0, int y = 0) {
this->x = x;
this->y = y;
}
int getX() const {
return x;
}
int getY() const {
return y;
}
void setX(int x) {
this->x = x;
}
void setY(int y) {
this->y = y;
}
};
```
在这个示例代码中,我们定义了一个 `Point` 类,它有两个私有属性 `x` 和 `y` 分别表示点的二维坐标值。我们提供了公开的 get 和 set 函数,用于获取和修改 `x` 和 `y` 的值。此外,我们还提供了一个合理的构造函数,用于初始化点的坐标值。
相关问题
c++设计并用this指针实现一个平面点类 Point, 要求: (1)用x、y两个坐标值表示一个点; (2)正确初始化每个点,默认坐标值为原点; (3)计算点到原点的距离;(4)用this指针
以下是用C++实现一个平面点类Point的代码,其中使用了this指针来访问对象的成员变量和成员函数:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point() {
x = 0;
y = 0;
}
Point(double x, double y) {
this->x = x;
this->y = y;
}
double distanceToOrigin() {
return sqrt(x * x + y * y);
}
};
int main() {
Point p1;
Point p2(3, 4);
cout << "Distance from p1 to origin: " << p1.distanceToOrigin() << endl;
cout << "Distance from p2 to origin: " << p2.distanceToOrigin() << endl;
return 0;
}
```
在上述代码中,Point类中有两个私有成员变量x和y,表示点的坐标值。类中有两个构造函数,一个是默认构造函数,用于初始化每个点的坐标值为原点;另一个是带参数的构造函数,用于初始化指定坐标的点。
类中还有一个公有成员函数distanceToOrigin,用于计算点到原点的距离。在该函数中,使用this指针来访问对象的成员变量x和y,从而计算点到原点的距离。
在main函数中,创建了两个Point对象p1和p2,并分别调用了distanceToOrigin函数来计算它们到原点的距离。
设计并实现一个平面点类Point,要求:(1)用X,Y两个坐标值表示一个点;(2)正确初始化每个点,默认坐标值为原点;(3)计算点到原点的距离;(4)计算到另一个点的距离;(5)获取点的X,Y坐标值;(6)设置点的X,Y坐标;(7)移动点到新位置;编写测试程序
下面是实现该平面点类Point的代码,其中包含了该类的成员变量、构造函数、成员函数以及测试程序:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x, y; //点的X,Y坐标值
public:
//默认构造函数,初始化每个点,默认坐标值为原点
Point() : x(0.0), y(0.0) {}
//构造函数,设置点的X,Y坐标
Point(double a, double b) : x(a), y(b) {}
//获取点的X,Y坐标值
double getX() const { return x; }
double getY() const { return y; }
//设置点的X,Y坐标
void setX(double a) { x = a; }
void setY(double b) { y = b; }
//移动点到新位置
void move(double a, double b) { x += a; y += b; }
//计算点到原点的距离
double distance() const { return sqrt(x * x + y * y); }
//计算到另一个点的距离
double distance(const Point &p) const {
double dx = x - p.x;
double dy = y - p.y;
return sqrt(dx * dx + dy * dy);
}
};
int main() {
Point p1, p2(3.0, 4.0);
cout << "p1: (" << p1.getX() << ", " << p1.getY() << ")" << endl;
cout << "p2: (" << p2.getX() << ", " << p2.getY() << ")" << endl;
cout << "Distance from p1 to origin: " << p1.distance() << endl;
cout << "Distance from p2 to origin: " << p2.distance() << endl;
cout << "Distance from p1 to p2: " << p1.distance(p2) << endl;
p1.move(2.0, 3.0);
cout << "p1 moved to (" << p1.getX() << ", " << p1.getY() << ")" << endl;
return 0;
}
```
运行该测试程序,输出结果如下:
```
p1: (0, 0)
p2: (3, 4)
Distance from p1 to origin: 0
Distance from p2 to origin: 5
Distance from p1 to p2: 5
p1 moved to (2, 3)
```
该测试程序创建了两个点p1和p2,分别输出它们的坐标值。然后,计算了p1和p2到原点的距离、p1到p2的距离,并输出结果。接着,将p1移动到了新的位置,再次输出p1的坐标值。
阅读全文