请设计直角坐标 COORD 类。它包含两个私有数据成员:x (横坐标) 和 y (纵坐标)。
时间: 2024-05-08 09:15:48 浏览: 63
笑脸转换坐标CooRD-MG2.0
以下是 COORD 类的设计:
```c++
class COORD {
private:
double x;
double y;
public:
// 构造函数
COORD(double x = 0, double y = 0) {
this->x = x;
this->y = y;
}
// 拷贝构造函数
COORD(const COORD& other) {
this->x = other.x;
this->y = other.y;
}
// 获取横坐标
double getX() const {
return x;
}
// 获取纵坐标
double getY() const {
return y;
}
// 设置横坐标
void setX(double x) {
this->x = x;
}
// 设置纵坐标
void setY(double y) {
this->y = y;
}
// 计算到原点的距离
double distanceToOrigin() const {
return sqrt(x * x + y * y);
}
// 重载加法运算符,实现坐标相加
COORD operator+(const COORD& other) const {
return COORD(this->x + other.x, this->y + other.y);
}
// 重载减法运算符,实现坐标相减
COORD operator-(const COORD& other) const {
return COORD(this->x - other.x, this->y - other.y);
}
// 重载等于运算符,实现坐标相等判断
bool operator==(const COORD& other) const {
return this->x == other.x && this->y == other.y;
}
// 重载不等于运算符,实现坐标不等判断
bool operator!=(const COORD& other) const {
return !(*this == other);
}
// 友元函数,实现坐标输出
friend std::ostream& operator<<(std::ostream& os, const COORD& coord) {
os << "(" << coord.x << ", " << coord.y << ")";
return os;
}
};
```
上面的 COORD 类包含了构造函数、拷贝构造函数、获取和设置横纵坐标的方法、计算到原点的距离的方法、重载加、减、等于和不等于运算符、友元函数实现坐标输出。
阅读全文