2 Objekte addieren (Operatorenüberladung)
-
Hallo,
Brauche bitte so schnell wie möglich Hilfe weil ich demnächst Referat halten muss über die Überladung von Operatoren.
Bekomme 2 Fehler in folgendem QC.. weiß aber nicht woran es liegt. Wäre erfreut wenn mir jmd helfen kann!
#include <string> #include <iostream> class mann { std::string Name; public: mann(std::string name) : Name(name) { } std::string operator+(frau& f) { Name += "-" + f.Name; f.Name = Name + "-" + f.Name; return Name; } }; class frau { friend class mann; std::string Name; public: frau(std::string name) : Name(name) { } }; int main() { mann Mann("Test"); frau Frau(" Person"); std::cout << Mann + Frau << std::endl; }
Habe das Beispiel von irgendeiner Seite, komisch, denn laut dem Autor geht's bei ihm...
MFG
-
Noch zur Anmerkung:
Wie ihr ja seht will ich 2 Objekte verschiedener Klassen addieren. Zwei Objekte gleicher Klassen zusammenzusetzen is ja kein Problem.
Fehler treten auf:
Zeile 8: " ) erwartet "
und vorletzte Zeile: " operator+ not implemented in type "mann" for arguments of type "frau"
-
also bei mir funktionierts auch nicht...
ich bin mir nicht so ganz sicher, obs funktioniert, nen operator für Mann zu überladen, der dann eine Frau übernimmt und einen String zurückgibt..Mein vorschlag wäre, eine Basisklasse Mensch zu erstellen, dort den Operator zu überladen und und Mann und Frau von dieser abzuleiten..
-
Hi,
definiere Frau einfach mal vor Mann, was biblisch zwar nich korrekt ist, aber dein Problem lösen sollte.
-
ooooooooooooh vielen vielen Dank, da hätt ma jetz lang suchen können
Jetzt klappts! ThX