(运算符重载基础练习)复数类的++ --运算
时间: 2023-06-18 20:02:09 浏览: 151
为实现复数类的++ --运算,我们需要对复数类进行运算符重载。我们可以重载前置++和--运算符和后置++和--运算符。
下面是一个简单的复数类的定义:
```cpp
class Complex {
private:
double real_;
double imag_;
public:
Complex(double real = 0, double imag = 0) : real_(real), imag_(imag) {}
double real() const { return real_; }
double imag() const { return imag_; }
Complex operator++(); //前置++
Complex operator--(); //前置--
Complex operator++(int); //后置++
Complex operator--(int); //后置--
};
Complex Complex::operator++() {
real_++;
imag_++;
return *this;
}
Complex Complex::operator--() {
real_--;
imag_--;
return *this;
}
Complex Complex::operator++(int) {
Complex temp(*this);
real_++;
imag_++;
return temp;
}
Complex Complex::operator--(int) {
Complex temp(*this);
real_--;
imag_--;
return temp;
}
```
前置++和--运算符直接将实部和虚部分别加/减1即可。
后置++和--运算符需要先保存当前对象的值,然后再将实部和虚部分别加/减1,最后返回保存的对象值。
下面是一个使用复数类的示例:
```cpp
int main() {
Complex a(1, 2);
Complex b = ++a;
Complex c = b--;
cout << "a=" << a.real() << "+" << a.imag() << "i" << endl;
cout << "b=" << b.real() << "+" << b.imag() << "i" << endl;
cout << "c=" << c.real() << "+" << c.imag() << "i" << endl;
return 0;
}
```
输出结果为:
```
a=2+3i
b=2+3i
c=3+4i
```
可以看到,前置++和后置--运算符都可以正常工作。
阅读全文