为复数类增加重载运算符-、-=用成员函数
时间: 2024-03-14 20:43:16 浏览: 66
复数的单目运算符重载(友元函数)-c++_运算符重载
好的,针对您的问题,以下是示例代码:
```c++
#include<iostream>
using namespace std;
class Complex{
public:
double real, imag;
Complex(double r = 0, double i = 0):real(r), imag(i){} //构造函数
Complex operator-(const Complex &c2); //重载运算符-,用成员函数实现
Complex operator-=(const Complex &c2); //重载运算符-=,用成员函数实现
};
Complex Complex::operator-(const Complex &c2){
return Complex(real - c2.real, imag - c2.imag);
}
Complex Complex::operator-=(const Complex &c2){
real -= c2.real;
imag -= c2.imag;
return *this;
}
int main(){
Complex c1(1, 2), c2(3, 4);
Complex c3 = c1 - c2; //使用重载的运算符-
cout << "c3: " << c3.real << " + " << c3.imag << "i" << endl;
c1 -= c2; //使用重载的运算符-=
cout << "c1: " << c1.real << " + " << c1.imag << "i" << endl;
return 0;
}
```
在上述代码中,我们定义了一个复数类 `Complex`,并在其中重载了运算符-和-=。在这里,我们使用成员函数的形式进行重载,实现了复数之间的减法和复合赋值运算符。在主函数中,我们测试了这两个运算符的功能。
需要注意的是,减法运算符-返回的是一个新的 `Complex` 类型对象,而复合赋值运算符-= 则直接对当前对象进行操作,并返回当前对象的引用。
阅读全文