问题:
定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和。
#include<iostream>
using namespace std;
class Complex
{
public:
Complex() //定义无参构造函数
{
real=0;
imag=0;
}
Complex(double r,double i):real(r),imag(i){}; //定义有参构造函数(构造函数重载)
double get_real()
{
return real;
}
double get_imag()
{
return imag;
}
void display();
private:
double real;
double imag;
} ;
Complex operator+(Complex &c1,Complex &c2) //定义重载运算符"+"的函数
{
return Complex( c1.get_real() +c2.get_real() ,c1.get_imag() +c2.get_imag() );
}
void Complex::display()
{
cout<<"("<<real<<","<<imag<<")"<<endl;
}
int main()
{
Complex c1(2.2,3.1),c2(3.1,2.3),c3;
c3=c1+c2;
cout<<"c1=";c1.display();
cout<<"c2=";c2.display();
cout<<"c3=";c3.display() ;
return 0;
}