Objekte vergleichen ?



  • Hi alle !

    Ich versuche gerade 2 Objekte zu vergleichen !

    übergabe CallbyValue
    main().....
    }
    erg = k_vergleich(x,y);
    }

    bool k_vergleich(Konto konto1,Konto konto2)
    {

    if(konto1>konto2)
    {
    return false;
    }
    else
    {
    return true;
    }

    }

    Ist es überhaupt möglich 2 Objekte so zu vergleichen ?

    MFG,
    Matthias



  • Nein.



  • es waere moeglich wenn das "Konto" Objekt den Operator > unterstuezt
    von selbst wird das sonst nicht funktionieren

    zb: so wuerde es dann funktionieren

    class Konto
    {
       int value;
       bool operator> (const Konto& k) const
       {
            return (value > k.value) ? true : false;
       }
    };
    


  • DarthZiu schrieb:

    Nein.

    Natürlich schon.
    Man muss nur den operator> überladen, dann geht es schon.
    Matthias500, lies mal in deinem C++ Buch das Kapitel über "Operatoren Überladung"



  • Danke für die schnelle Antwort!

    Vielleicht mit Call by Referenz ?



  • Matthias500 schrieb:

    Ist es überhaupt möglich 2 Objekte so zu vergleichen ?

    Sicher. Du musst nur die entsprechenden Operatoren für deine Klasse überladen.



  • Ihr Geier 😃



  • Wenn du gemeint hast, ob man Objekte von z.B. der Klasse Konto so vergleichen kann:

    Konto k1, k2;
    ...
    if(k1 < k2)
      ...
    else
      ...
    

    Das geht. Und zwar mit der Operatorenüberladung. Mit dieser kannst du nämlich den Geltungsbereich von Operatoren für deine Klasse erweitern.
    In diesem Fall müsste der Operator "<" überladen werden.

    Für nähere Infos siehe z.B. folgendes Tutorial.
    http://tutorial.schornboeck.net/

    //Edit: Man ist hier was passiert. (Muss mich wohl nach dem Urlaub erstmal wieder Eingschreiben ... )

    Caipi



  • Darf ich fragen was ich da machen muss ? 🙂 Das meine Klasse

    class Konto
    {

    private:
    int m_ktonr;
    int m_ktostand;
    bool t;
    public:
    Konto(int ktonr,int ktostand)
    {
    m_ktonr = ktonr;
    m_ktostand = ktostand;
    }
    int gibKontonr(){return m_ktonr;}
    int gibKontostand(){return m_ktostand;}
    void einzahlen(int betrag){m_ktostand+=betrag;}
    void abheben(int betrag){m_ktostand-=betrag;}
    void kontox()
    {
    cout << "\nKontonummer:m_ktonr "<<m_ktonr;
    cout << "\nKontobetrag:m_ktostand "<<m_ktostand;
    }
    };



  • 😃

    HumeSikkins schrieb:

    Ihr Geier 😃

    zum glück gibt es diese themen-überblick-aktualisieren funktion, sonst wäre hier 5mal das gleiche gestanden 😉



  • Matthias500 schrieb:

    Darf ich fragen was ich da machen muss ? 🙂 Das meine Klasse

    int m_ktonr;
    int m_ktostand;

    naja das musst du wissen..
    ich schatz aber mal das du den kontostand vergleichen willst 🙂

    EDIT: sieh dir mein bsp an auf der ersten seite



  • //Edit: Sorry, habe leo aka qsch's Beispiel garnicht gesehen... Bewirkt das gleiche.

    Caipi



  • Vielen dank !! an alle für die schnelle hilfe !



  • davie schrieb:

    😃

    HumeSikkins schrieb:

    Ihr Geier 😃

    zum glück gibt es diese themen-überblick-aktualisieren funktion, sonst wäre hier 5mal das gleiche gestanden 😉

    Ja,ja. Immer von mir abschreiben...
    :p



  • Shade Of Mine schrieb:

    davie schrieb:

    😃

    HumeSikkins schrieb:

    Ihr Geier 😃

    zum glück gibt es diese themen-überblick-aktualisieren funktion, sonst wäre hier 5mal das gleiche gestanden 😉

    Ja,ja. Immer von mir abschreiben...
    :p

    Kata (Japanese for form or pattern) are an exercise where the novice repeatedly tries to emulate a master

    Eine gute Lernstrategie nicht nur beim Karate 😉



  • Shade Of Mine schrieb:

    DarthZiu schrieb:

    Nein.

    Natürlich schon.
    Man muss nur den operator> überladen, dann geht es schon.

    Das ist mir schon klar. Ich meinte, so wie er das versucht, wird es nichts... Sorry, hab mich falsch ausgedrückt. 😞


Log in to reply