complex& operator++(); complex operator++(int);这两个有什么区别
时间: 2023-08-15 13:05:51 浏览: 78
这两个函数是运算符重载函数,用于重载复数类型的自增运算符。
其中,前置自增运算符重载函数 `complex& operator++()` 返回的是自增后的对象本身,而后置自增运算符重载函数 `complex operator++(int)` 的参数是一个占位符,返回的是自增前的对象的副本。因此,它们的区别在于返回值的类型和返回的对象是不是自增前的对象。
具体实现可以参考下面的示例代码:
```cpp
class complex {
public:
complex& operator++(); // 前置自增运算符重载函数
complex operator++(int); // 后置自增运算符重载函数,这里的 int 是一个占位符
private:
double re, im;
};
complex& complex::operator++() {
// 前置自增运算符重载函数实现
re++;
im++;
return *this;
}
complex complex::operator++(int) {
// 后置自增运算符重载函数实现
complex old = *this;
++(*this);
return old;
}
```