3

演算子 + をオーバーロードした複素数のクラスを作成しましたが、すべて正常に動作しますが、これを非メンバー関数として実装する必要があり、その方法や利点がある理由がわかりません。

これが私のコードです.h:

class Complex
{
private:
    double a;
    double b;

public:
    Complex();
    Complex(double aGiven);
    Complex(double aGiven, double bGiven);

    double aGetValue();
    double bGetValue();    
    double operator[](bool getB);

    Complex add(Complex &secondRational);
    Complex operator+(Complex &secondRational);
}

.cpp:

Complex Complex::add(Complex &secondRational)
{
    double c = secondRational.aGetValue();
    double d = secondRational.bGetValue();
    double anew = a+c;
    double bnew = b+d;
    return Complex(anew,bnew);
}

Complex Complex::operator+(Complex &secondRational)
{
    return add(secondRational);
}

これらを非メンバー関数として作成する方法についてのヘルプは大歓迎です!

4

4 に答える 4