Rückgabe für Objekt definieren



  • Hallo !

    Ich würde gerne in einer Klasse einen Rückgabewert für das Objekt definieren. Also z.B. Klasse Auto, Rückgabe = Gewicht.

    Es sollten also solche Abfragen möglich sein:

    if (auto > 1300) oder if(auto1 < auto2) oder auch if(auto) (also mehr als 0 Kilo 😉

    Ich finde da beim Operator überladen nicht das richtige (speziell für den 3. Fall), oder geht so etwas gar nicht ?

    Es ginge rein um Übersichtlichkeit des Codes.

    DANKE !



  • In C++ geht vieles. Auch "if (auto) ...". Dafür musst Du den operator bool() überladen, welcher das Auto implizit in ein bool konvertiert. Aber so fein Operatorüberladung ist man muss wirklich sehr vorsichtig sein, es nicht zu übertreiben. Auch wenn das auf den ersten Blick sehr übersichtlich aussieht, ist es oft auf dem zweiten Blick (bzw. auf den Blick nach ein paar Monaten) nicht mehr. Was soll "if (auto) ..." bedeuten? Das kann vieles sein. Eine explizite Membermethode wäre eher angebracht.



  • Ha ! Operator bool!

    Danke, hab ich einfach nicht gefunden. Das Beispiel war natürlich ausgedacht. Es geht um Logiken und die werden einfach sehr viel übersichtlicher (gerade bei längeren logischen Verknüpfungen) wenn man if(Logik) schreiben kann und nicht if(Logik==1)

    DANKE !


  • Mod

    Um die allgemeine Verwirrung der Leser gering zu halten, empfehle ich auch, nicht "auto" als Variablenname in Beispielen zu verwenden.



  • ja sorry, auto war wohl wenig durchdacht 😉


Log in to reply