Überladen von operator< innerhalb einer Klasse
-
Hallo Forum,
ich habe ein seltsames Problem mit dem Überladen von Operatoren.
Das Problem ist in den folgenden Codezeilen zusammengefasst, einmal
kann ich den Kleiner-Operator aufrufen, einmal gibt's einen Compiler-Fehler.
Als Compiler verwende ich Visual Studio .NET (2003).class CAussen { public: class Test { public: Test( int i ) : t_(i) { ; } ; bool operator<= ( const Test &other) { return (this->t_ < other.t_); }; private: int t_; }; void vTest(void) { Test t1(3), t2(4); bool b = ( t1 < t2 ); // MS-VC7.1 (VS2003) -> "error C2676: binary '<' : 'CAussen::Test' does not define this operator or a conversion to a type acceptable to the predefined operator" }; }; int main(int, char **) { CAussen::Test q1(3), q2(43); const bool b = (q1 <= q2); // funktioniert std::cout << b << std::endl; return 0; }Hat jemand hierzu eine Idee??
Danke im Voraus.
-
Ja:
Du hast einen operator<= definiert und versuchst bei dem Fehler den operator< zu verwenden.