カスタムTimeStructクラスを実装しました。ここで、次のように<演算子を宣言します。
bool operator<(const TimeStruct t2) const;
実装は次のとおりです。
bool TimeStruct::operator<(const TimeStruct t2) const
{
//do something, I don't include the actual implementation
return true;
}
次に、このTimeStructクラスがメンバーである別のクラスXがあり、このメンバーフィールドをYと呼びます。ベクトルを使用しており、このベクトルをクラスXのYフィールドで並べ替えます。したがって、メソッドを指定する必要があります。これは、ベクトルのsortメソッドの基礎として役立つ可能性があります。
したがって、異なるXを比較するためにXで追加のメソッドを宣言しました。
bool compareX(const X& x1, const X& x2) const;
実装は次のとおりです。
bool X::compareX(const X& x1, const X& x2) const
{
return (x1.Y.operator<(x2.Y));
}
残念ながら、このコードはコンパイルされません。次のエラーが発生します。
No matching function call for TimeStruct::operator<(const TimeStruct&) const
candidates are : bool TimeStruct::operator<(TimeStruct&) const
私はこの1時間髪を引っ掻いてきましたが、私が間違っていることを誰かが指摘できますか。