operator + - *
以下のように as フレンドをオーバーロードして、 Complex number class を作成しようとしていました。
ComplexNumber operator+(const ComplexNumber &c1, const ComplexNumber& c2)
{
return ComplexNumber(c1._r+c2._r, c1._i+c2._i);
}
ostream& operator << ( ostream &out, ComplexNumber &c){
out << c.getReal() <<'+'
<< c.getImg() <<'I' << std::endl;
}
実行中に問題は発生しません:
ComplexNumber c1(1,2);
cout << c1 << endl;
しかし、次のことをしようとすると:
ComplexNumber c2(2,1);
cout << c1 + c2 << endl;
エラーが発生します:
'ComplexNumber' から 'ComplexNumber&' への引数 1 の既知の変換はありません</p>
問題は、の戻り値が であることはわかっていますoperator+
がComplexNumber
、ostream
演算子にはComplexNumber&
.
これに対処する方法がわかりません。ありがとう