私のクラスでは、プロトタイプ (パブリック) を次のように記述します。
bool operator< (const MyClass& obj);
クラス外 (同じファイル内) のメソッドを次のように実装します。
bool MyClass::operator< (const MyClass& obj)
{
cout << "operator< used" << endl;
//do my work
}
問題は、明示的に呼び出した場合 ( のようにobj1->operator<(*obj2)
) オーバーロード演算子が呼び出されますが、暗黙的に呼び出された場合 ( のように) 呼び出されないことobj1 < obj2
です。
この記事のオーバーロードのチュートリアルに従っていますが、何が欠けているのか、何が間違っているのかわかりません。