C++语言的多态性有很多表现,其中之一便是yuan运算符的重载
代码如下:
class Complex{
double re,im;
......//此处省略
public:
friend Complex operator+(Complex c){
Complex t;
t.re=re+c.re;
t.im=im+c.im;
return t;
}
friend ostream&operator<<(ostream&out,Complex &obj){
out<<obj.re<<"+">>obj.im<<"i";
return out;
}
};
经过运算符的重载,对于复数的加法运算在main函数中,比如对于Complex C1(1,2),C2(3,4),可以直接使用"+"相加
即,Complex C3=C1+C2;(相当于C3=C1.operator+(C2),在程序中operator+被隐藏了);
另外输出流运算符也经过重载,可以直接使用cout<<C3<<endl输出。