定义一个复数类Complex,重载运算符“+”使之能用于复数的加法运算。参加的2个运算量可以都是类对象,也可以其中一个是整数,另一个是类对象,顺序任意。如:c1+c2,i+c1,c1+i均合法(设i为整数,c1,c2为复数)。编程序,分别求两个复数之和,整数和复数之和。
时间: 2024-05-12 07:16:54 浏览: 88
定义复数类Complex,进行运算符重载
5星 · 资源好评率100%
非常感谢您的提问!根据您的要求,我为您编写如下的代码:
```
#include<iostream>
using namespace std;
class Complex{
private:
double real; // 复数实部
double imag; // 复数虚部
public:
Complex(double r=0, double i=0):real(r), imag(i){} // 构造函数
Complex operator+(const Complex & c);// 重载+运算符,用于复数加法运算
friend Complex operator+(double a, const Complex & c);// 重载+运算符,用于整数和复数之和的运算
void print();// 输出函数
};
Complex Complex::operator+(const Complex & c){
// 复数加法运算
double r = real + c.real;
double i = imag + c.imag;
return Complex(r, i);
}
Complex operator+(double a, const Complex & c){
// 整数和复数之和的运算
double r = a + c.real;
double i = c.imag;
return Complex(r, i);
}
void Complex::print(){
// 输出函数
if(imag >= 0)
cout<<real<<" + "<<imag<<"i"<<endl;
else
cout<<real<<" - "<<-imag<<"i"<<endl;
}
int main(){
Complex c1(3, 4); // 第一个复数
Complex c2(5, -1); // 第二个复数
double a = 2; // 整数
Complex c_sum1 = c1 + c2; // 两个复数之和
Complex c_sum2 = a + c1; // 整数和复数之和
cout<<"c1 + c2 = ";
c_sum1.print();
cout<<"a + c1 = ";
c_sum2.print();
return 0;
}
```
代码运行结果如下:
```
c1 + c2 = 8 + 3i
a + c1 = 5 + 4i
```
希望我的回答能够帮助您解决问题!如果您还有其他的疑问,请随时向我提问。
阅读全文