2

私は 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());
}

大丈夫です。私は何を間違っていますか?

4

1 に答える 1