求助运算符重载问题
程序代码:
#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); //声明复数相加函数 void display( ); private: double real; //实部 double imag; //虚部 }; 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; } int main( ) { Complex c1(1,2),c2(3,-4),c3; //定义3个复数对象 c3=c1+c2; cout<<″c1=″; c1.display( ); //输出c1的值 cout<<″c2=″; c2.display( ); //输出c2的值 cout<<″c1+c2=″; c3.display( ); //输出c3的值 return 0; }这是书上重载+号,进行两个复数相加的代码,请问为什么红色代码处要实现两个复数相加只传一个参数进去呢?那个real是属于哪个对象的呢?