1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Vergleich zweier Instanzen

  • Reinhard
  • 18. November 2002 um 18:24
  • Unerledigt
  • Reinhard
    6
    Reinhard
    Mitglied
    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
    32
    hal
    Mitglied
    Reaktionen
    52
    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.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Reinhard
    6
    Reinhard
    Mitglied
    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
    32
    hal
    Mitglied
    Reaktionen
    52
    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).

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Reinhard
    6
    Reinhard
    Mitglied
    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
    4
    Deep Thought
    Mitglied
    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.

    Alles ist möglich, die Frage ist nur wer's programmiert!

  • RupertK
    4
    RupertK
    Mitglied
    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)

    intelligenz * schönheit = const

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung