Ü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.


Anmelden zum Antworten