定义一个复数类,重载“-=”运算符,使这个运算符能直接完成复数的“-=”运算。分别用成员函数与友元函数编写运算符重载函数。在主函数中定义复数对象c1(10,20)、c2(15,30),进行c2-=c1的复数运算,并输出c1、c2的复数值。
时间: 2024-04-30 15:22:39 浏览: 120
好的,这是一个关于C++编程的问题。可以使用类或结构体来定义复数类。对于重载“-=”运算符,在类内可以使用成员函数,也可以在类外定义友元函数。具体实现过程可以参考以下代码:
```
#include<iostream>
using namespace std;
class Complex {
private:
double real;
double imag;
public:
Complex(double r=0, double i=0){
real = r;
imag = i;
}
void show(){
cout<<real<<" + "<<imag<<"i"<<endl;
}
Complex operator-=(Complex &c){
real -= c.real;
imag -= c.imag;
return *this;
}
friend Complex operator-=(Complex &c1, Complex &c2){
c1.real -= c2.real;
c1.imag -= c2.imag;
return c1;
}
};
int main(){
Complex c1(10, 20);
Complex c2(15, 30);
c2 -= c1; //使用成员函数重载运算符
c1.show();
c2.show();
c2 -= c1; //使用友元函数重载运算符
c2.show();
return 0;
}
```
这段代码定义了一个Complex类,实现了成员函数和友元函数两种方式对“-=”运算符进行重载。在主函数中定义了两个复数对象c1和c2,分别进行了“-=”运算并输出复数值。
阅读全文