私は C++ を学んでいます (正確に言えば演算子のオーバーロード)。この方法で operator+ をオーバーロードしてみます:
Complex4d Complex4d::operator+(const Complex4d &rvalue)
{
return Complex4d(a() + rvalue.a(), b());
}
rvalue.a() と a()、rvalue.b() と b() は Complex2d のオブジェクトです。Complex2d クラスでは、次の方法で operator+ もオーバーロードします。
Complex2d Complex2d::operator +(Complex2d &rvalue)
{
return Complex2d(a() + rvalue.a(), b() + rvalue.b());
}
これを書くと:
Complex4d Complex4d::operator+(const Complex4d &rvalue)
{
Complex2d test = rvalue.a();
return Complex4d(a() + test, b());
}
大丈夫です。私は何を間違っていますか?