题目描述
通过本题目的练习可以掌握成员运算符重载及友元运算符重载
要求定义一个复数类,重载加法和减法运算符以适应对复数运算的要求,重载插入运算符(<<)以方便输出一个复数的要求。
通过本题目的练习可以掌握成员运算符重载及友元运算符重载
要求定义一个复数类,重载加法和减法运算符以适应对复数运算的要求,重载插入运算符(<<)以方便输出一个复数的要求。
输入
要求在主函数中创建对象时初始化对象的值。
要求在主函数中创建对象时初始化对象的值。
输出
输出数据共有4行,分别代表a,b的值和它们求和、求差后的值
输出数据共有4行,分别代表a,b的值和它们求和、求差后的值
示例输入
无
无
示例输出
a=3.2+4.5i
b=8.9+5.6i
a+b=12.1+10.1i
a-b=-5.7-1.1i
#include<iostream>
using namespace std ;
class Complex
{
public:
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r;imag=i;}
Complex operator + (Complex &c2);
Complex operator - (Complex &c2);
void display();
void display1();
private:
double real;
double imag;
};
Complex Complex::operator + (Complex &c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
Complex Complex::operator - (Complex &c2)
{
Complex C;
C.real=real-c2.real;
C.imag=imag-c2.imag;
return C;
}
void Complex:: display()
{
cout<<real<<"+"<<imag<<"i"<<endl;
}
void Complex:: display1()
{
cout<<real<<imag<<"i"<<endl;
}
int main()
{
Complex c1(3.2,4.5),c2(8.9,5.6),c3,c4;
c3=c1+c2;
c4=c1-c2;
cout<<"a=";
c1.display();
cout<<"b=";
c2.display();
cout<<"a+b=";
c3.display();
cout<<"a-b=";
c4.display1();
return 0;
}
a=3.2+4.5i b=8.9+5.6i a+b=12.1+10.1i a-b=-5.7-1.1i
#include<iostream>
using namespace std ;
class Complex
{
public:
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r;imag=i;}
Complex operator + (Complex &c2);
Complex operator - (Complex &c2);
void display();
void display1();
private:
double real;
double imag;
};
Complex Complex::operator + (Complex &c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
Complex Complex::operator - (Complex &c2)
{
Complex C;
C.real=real-c2.real;
C.imag=imag-c2.imag;
return C;
}
void Complex:: display()
{
cout<<real<<"+"<<imag<<"i"<<endl;
}
void Complex:: display1()
{
cout<<real<<imag<<"i"<<endl;
}
int main()
{
Complex c1(3.2,4.5),c2(8.9,5.6),c3,c4;
c3=c1+c2;
c4=c1-c2;
cout<<"a=";
c1.display();
cout<<"b=";
c2.display();
cout<<"a+b=";
c3.display();
cout<<"a-b=";
c4.display1();
return 0;
}