Operator überladen in C++

  • Hallo, würde dringend eure Hilfe brauchen.

    Ich muss den Operator== überladen (gehört zur Klasse Item)

    bool Item::operator== (const Item &itemP)


    Ich hätte es mit dem Aufruf if (neu==knownItems) probiert, funktioniert aber leider nicht .

    neu ist ein Objekt der klasse Item. und knownItems ist ein Array welches auf Items zeigt . Item* knownItems[50].

    Ich muss ja zwei Items übergeben, das erste braucht man nicht in den Parameter schreiben, der zweite Parameter ist hier eine Referenz, also brauch ich nur den Namen übergeben.

    Helft mir bitte, wäre eucht echt sehr dankbar, schönen Tag noch Reinhard

  • wenn ich es richtig verstanden habe versucht du ein objekt mit einem pointer zu vergleichen, das wird nicht gehen.

    probiers mit:
    if (neu==knownItems[0])

    außerdem zeigt ein array immer auf items, dafür brauchst du nicht nochmals einen *.

    probiers mit:
    Item knownItems[50]

  • was genau willst du versuchen?

    willst du ein item mit einer liste/einem array von items vergleichen
    (um z.B. herauszufinden ob das item drinnen ist oder whatever) oder willst nur 2 items vergleichen?

    Peter

  • Probiers mit

    Code
    bool operator== (Item* param){
      return (this->value == param->value);
    }


    value ist hierbei der zu vergleichende Wert und sollte wiederum den Operator == haben...

    bei einem Array kannst du ja mal das hier versuchen:

    Code
    bool operator== (Item param[]){
      //.....
    }

    "The letters are Hex, of an ancient mode, but the language is that of Microsoft, which I shall not utter here."

Jetzt mitmachen!

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