为复数类增加重载的运算符-、-=用成员函数做
时间: 2024-03-13 10:47:24 浏览: 75
类模板+运算符重载(成员函数形式)
4星 · 用户满意度95%
为复数类增加重载的运算符-、-=,可以使用成员函数实现。下面是一个示例:
```c++
#include <iostream>
using namespace std;
class Complex {
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
Complex operator-(const Complex& c) const;
Complex& operator-=(const Complex& c);
void display() const {
cout << "(" << real << ", " << imag << ")" << endl;
}
private:
double real;
double imag;
};
Complex Complex::operator-(const Complex& c) const {
return Complex(real - c.real, imag - c.imag);
}
Complex& Complex::operator-=(const Complex& c) {
real -= c.real;
imag -= c.imag;
return *this;
}
int main() {
Complex a(1, 2);
Complex b(3, 4);
Complex c = a - b;
c.display(); // 输出:(-2, -2)
a -= b;
a.display(); // 输出:(-2, -2)
return 0;
}
```
在上面的例子中,我们重载了减法运算符-和复合赋值运算符-=,它们都是成员函数。当我们使用减法运算符-时,它返回一个新的复数对象,表示两个复数对象的差。当我们使用复合赋值运算符-=时,它会修改当前的复数对象,使其减去另一个复数对象。这两种运算符都使用了成员函数来实现。
阅读全文