1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Vergleich zweier Instanzen

  • Reinhard
  • 18. November 2002 um 18:24
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Reinhard
    Punkte
    280
    Beiträge
    39
    • 18. November 2002 um 18:24
    • #1

    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

  • hal
    Punkte
    11.122
    Beiträge
    2.208
    • 18. November 2002 um 19:24
    • #2

    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.

  • Reinhard
    Punkte
    280
    Beiträge
    39
    • 20. November 2002 um 23:35
    • #3

    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

  • hal
    Punkte
    11.122
    Beiträge
    2.208
    • 21. November 2002 um 00:59
    • #4
    Zitat

    Original geschrieben von Reinhard

    Code
    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 }

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

  • Reinhard
    Punkte
    280
    Beiträge
    39
    • 21. November 2002 um 09:01
    • #5

    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

  • Deep Thought
    Punkte
    175
    Beiträge
    27
    • 21. November 2002 um 11:06
    • #6

    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.

  • RupertK
    Punkte
    130
    Beiträge
    22
    • 10. Dezember 2002 um 12:18
    • #7

    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)

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum