声明Point类,有坐标x、y两个成员变量;对类重载++和--运算符,实现坐标值的改变。c++
时间: 2024-03-14 08:48:33 浏览: 44
以下是Point类的代码实现,包括重载++和--运算符:
```c++
class Point {
public:
Point(double x = 0, double y = 0) : m_x(x), m_y(y) {}
// 重载前置++运算符
Point& operator++() {
++m_x;
++m_y;
return *this;
}
// 重载前置--运算符
Point& operator--() {
--m_x;
--m_y;
return *this;
}
private:
double m_x;
double m_y;
};
```
在上述代码中,Point类有两个成员变量x和y,分别表示坐标的横纵坐标值。在构造函数中,我们可以给这两个成员变量提供默认值。
接着,我们对++和--运算符进行了重载。前置++运算符表示在原有的坐标值上增加1,前置--运算符表示在原有的坐标值上减少1。这两个运算符都返回一个Point的引用,因为我们需要对原有的对象进行修改。
使用示例:
```c++
int main() {
Point p(1, 1);
++p;
--p;
return 0;
}
```
在上述示例中,我们创建了一个Point对象p,然后分别对它进行了两次++和--运算,最后返回0,程序结束。在执行++和--运算时,p的坐标值被分别改变了。
相关问题
声明Point类,有坐标x、y两个成员变量;对类重载++和--运算符,实现坐标值的改变。
下面是一个简单的 Point 类声明,其中包含坐标 x 和 y 两个成员变量,以及对 ++ 和 -- 运算符的重载:
```cpp
class Point {
public:
Point(int xx = 0, int yy = 0) : x(xx), y(yy) {}
// 前置++
Point& operator++() {
++x;
++y;
return *this;
}
// 前置--
Point& operator--() {
--x;
--y;
return *this;
}
private:
int x;
int y;
};
```
在这个类中,我们使用了默认参数来设置 x 和 y 的初始值为 0。重载的前置 ++ 和 -- 运算符会分别将 x 和 y 的值加 1 或减 1,并返回一个 Point 对象的引用,以便支持链式表达式。
声明Point类,有坐标x、y两个成员变量;对类重载++和--运算符,实现坐标值的改变并输出。c++
以下是Point类的代码实现,包括重载++和--运算符,并且在运算符重载函数中输出坐标值的修改结果:
```c++
#include <iostream>
class Point {
public:
Point(double x = 0, double y = 0) : m_x(x), m_y(y) {}
// 重载前置++运算符
Point& operator++() {
++m_x;
++m_y;
std::cout << "++Point: (" << m_x << ", " << m_y << ")" << std::endl;
return *this;
}
// 重载前置--运算符
Point& operator--() {
--m_x;
--m_y;
std::cout << "--Point: (" << m_x << ", " << m_y << ")" << std::endl;
return *this;
}
private:
double m_x;
double m_y;
};
```
在上述代码中,我们在运算符重载函数中分别输出了++和--运算后的坐标值。使用示例:
```c++
int main() {
Point p(1, 1);
++p;
--p;
return 0;
}
```
在上述示例中,我们创建了一个Point对象p,然后分别对它进行了两次++和--运算。在每次运算时,运算符重载函数会输出坐标值的修改结果。最后返回0,程序结束。