//复数相加,运算符重载实现
#include<iostream>
using namespace std;
class Complex
{public:
Complex(int i=0,int j=0)
{
x=i;
y=j;
}
Complex operator+(Complex &c);
void display();
private:
int x,y;
};
Complex Complex::operator +(Complex &c)
{
Complex a;
a.x=x+c.x;
a.y=y+c.y;
return a;
}
void Complex::display()
{
cout<<"("<<x<<","<<y<<"i"<<")";
}
int main()
{
Complex a,b(5,8),c;
c=a+b;
c.display();
}
注意的要点:
1:在外面声明重载函数的格式Complex Complex::operator +
2:类声明完之后记得加;
以下为友元的做法,注意不同之处。
//复数相加,运算符重载实现
#include<iostream>
using namespace std;
class Complex
{public:
Complex(int i=0,int j=0)
{
x=i;
y=j;
}
friend Complex operator+(Complex &c1,Complex &c2);
void display();
private:
int x,y;
};
Complex operator +(Complex &c1,Complex&c2)
{
Complex a;
a.x=c1.x+c2.x;
a.y=c1.y+c2.y;
return a;
}
void Complex::display()
{
cout<<"("<<x<<","<<y<<"i"<<")";
}
int main()
{
Complex a,b(5,8),c;
c=a+b;
c.display();
}
顺序可以换啦。