コンプc; ... cout<< c;
オーバーロードされた operator<< 関数は参照を返します。この場合、それはどこに返却されるか、誰が収集しますか。参照を返す目的は何ですか?
class comp
{
int re,im;
public: comp(){re=0;im=0;}
comp(int a,int b){re=a;im=b;}
void show(){cout<<"\n"<<im<<"+i"<<re<<"\n\n";}
comp operator *(comp a)
{
comp temp;
temp.re=(re+a.re) - (im*a.im);
temp.im=(im*a.re) + (re*a.im);
return temp;
}
friend ostream & operator<<(ostream& dout,complex & )
};
ostream& operator << (ostream &dout, comp &a)
{
dout<< a.re;
dout<< "+i";
dout<<a.im;
return dout;
}
int main()
{
comp a(1,2),b(2,3),c;
c=a*b;
c.show();
cout<< c;
return 0;
}