ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

関係演算子のオーバーロード

関係演算子(==や<など)のオーバーロードの場合は判定結果によってtrueやfalseを返すように実装すればよい。
オブジェクトが等しいか判定する==演算子オーバーロードした例が次の通り。

#include <iostream>
using namespace std;

class Test {
    int mNum;
public:
    Test() { mNum = 0; }
    Test(int num) { mNum = num; }

    bool operator==(Test x);
};

bool Test::operator==(Test x)
{
    if (mNum == x.mNum) {
        return true;
    } else {
        return false;
    }
}

int main()
{
    Test a(123), b(123), c(456);

    if ( a == b ) {
        cout << "Equal" << endl;
    } else {
        cout << "Not Equal" << endl;
    }

    if ( a == c ) {
        cout << "Equal" << endl;
    } else {
        cout << "Not Equal" << endl;
    }
}

実行結果

Equal
Not Equal