関係演算子(==や<など)のオーバーロードの場合は判定結果によって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