Meine Frage:
Wie gehe ich in C++ vor, wenn ich zwei Instanzen auf ihren Inhalt vergleichen möchte ?
Wäre nett, könnte mir jemand antworten
Schönen Abend noch
Reinhard
Meine Frage:
Wie gehe ich in C++ vor, wenn ich zwei Instanzen auf ihren Inhalt vergleichen möchte ?
Wäre nett, könnte mir jemand antworten
Schönen Abend noch
Reinhard
Entweder du implementierst eine hash-methode und vergleichst den Rückgabewert, oder du implementierst eine Vergleichsmethode in der Klasse, die via accessors die Werte der anderen Instanz abfragt und mit den eigenen vergleicht.
Kenne mich nicht wirklich aus, also ich muss zwei Instanzen auf deren Inhalt vergleichen, in welcher mer drinnen ist. (z.B:Geld)
Also ich muss die Operatoren < , >, ==, != überladen .
Dazu muss ich die jeweiligen Methoden definieren
zum Beispiel bool Hallo::operator< (Hallo b) {
return a.summe <b.summe ;
main () {
Hallo a;
Hallo b; //Name der Klasse "Hallo"
a.summe < b.summe; // Aufruf der Operatormethode
Was mach ich falsch, behandeln das kapitel erst in drei Wochen, möchte aber meine Aufgaben schon früher fertig stellen.
summe ist eine public Instanzvariable
Wäre nett könnte mir jemand helfen
Zitat
Ich schätz a ist undefiniert in der operator-funktion. Versuchs mal mit return summe < b.summe;
Ah ja, und du musst dann (a<b) verwenden, nicht (a.summe<b.summe).
dankeschön, da war der Fehler, aber warum kennt er in dieser Methode das a nicht (a ist eine Instanz) ?
Auf jeden Fall dankeschön, mein Programm ist nun fertig.
Schönen Tag, Reinhard
Deine Überladung ist in dem Beispiel außerdem sinnlos, weil du im Endeffekt sowieso die summen mit dem Standartoperator vergleichst. Wenn du deine Methode verwenden willst musst du die Instanzvariable weglassen. Es reicht:
a < b zu schreiben.
a hat nur im Hauptprogramm den Namen a.
In den Methoden der Klasse kannst du mit this oder nur den Namen der Instanzvariablen arbeiten.
wenn du in c++ zwei instanzen einer klasse vergleichen möchtest, dann geht das ganz einfach mit ==
außer du hast natürlich pointer.
== überschreiben brauchst du nur, wenn du etwas anderes vergleichen willst, als den ganzen inhalt. (also zb nur eine membervariable)
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!