/*用友元成员函数重载运算符,使得+,-适用于复数的运算*/
#include<iostream>
using namespace std;
class complex
{
double real;
double vir ;
public:
complex (double r=0.0,double v=0.0)//必须初始化一个数,不然会出现error C2512: 'complex' : no appropriate default constructor available
{
real=r;vir=v;
}
friend complex operator +(complex c1,complex c2);
friend complex operator -(complex c1,complex c2);
void display();
};
complex operator +(complex c1,complex c2)
{
return complex (c1.real+c2.real,c1.vir+c2.vir);
}
complex operator -(complex c1,complex c2)
{
return complex (c1.real-c2.real,c2.vir-c2.vir);
}
void complex::display()//忘记写void会出现四个错误
{
cout<<"("<<real<<","<<vir<<")"<<endl;
}
void main()
{
complex k1(2.3,6.5),k2(6.5,2.3),k;
cout<<"复数k1:";
k1.display();
cout<<"\n复数k2:";
k2.display();
k=k1+k2; cout<<"\n重载+后的复数:";
k.display();
k=k1-k2;
cout<<"\n重载-后的复数:";
k.display();
cout<<endl;
}
#include<iostream>
using namespace std;
class complex
{
double real;
double vir ;
public:
complex (double r=0.0,double v=0.0)//必须初始化一个数,不然会出现error C2512: 'complex' : no appropriate default constructor available
{
real=r;vir=v;
}
friend complex operator +(complex c1,complex c2);
friend complex operator -(complex c1,complex c2);
void display();
};
complex operator +(complex c1,complex c2)
{
return complex (c1.real+c2.real,c1.vir+c2.vir);
}
complex operator -(complex c1,complex c2)
{
return complex (c1.real-c2.real,c2.vir-c2.vir);
}
void complex::display()//忘记写void会出现四个错误
{
cout<<"("<<real<<","<<vir<<")"<<endl;
}
void main()
{
complex k1(2.3,6.5),k2(6.5,2.3),k;
cout<<"复数k1:";
k1.display();
cout<<"\n复数k2:";
k2.display();
k=k1+k2; cout<<"\n重载+后的复数:";
k.display();
k=k1-k2;
cout<<"\n重载-后的复数:";
k.display();
cout<<endl;
}