Einfache Friendfunktion Aufruf aus der main?
-
irgendwie kriege ich das nicht hin.
class NEU { private: double secret; public: NEU ( int a=999) { secret = a;} friend class NEU_NEU; }; class NEU_NEU { private: double boring; public: NEU_NEU ( double bb= 10) { boring = bb;} void change ( NEU zx) { zx.secret = boring; } };wenn ich aus der main nun die Funktion void change ( Neu zx)
aufrufen will, wie mache ich das?ich denke irgendwie so, aber klappt nicht
NEU_NEU v_neu; v_neu.change();Vielen Dank
komme einfach nicht drauf
-
Wo ist Dein Problem, außer das Du NEU an NEU_NEU als by Value und nicht by Reference übergibst?
-
wenn ich es so stehen habe, bekomme ich einen Fehler
"Funktion akzeptiert keine 0 Argumente"also muss wohl in die Klammer der Funktion was rein.
v_neu.change ();Leider weiß ich nicht was oder wie.
Wenn ich ein cout in die Funtkion change hinzufüge, bekomme ich einfach nichts auf dem Bildschirm angegeben
void change ( NEU zx) { zx.secret = b; cout << zx.secret; }
-
int main() { NEU_NEU v_neu; v_neu.change(NEU(2)); }Aber die Klassen sind doch Unfug.
-
**
okay habs jetzt durch Zufall hinbekommen.**
Wenn man eine Zahl, irgendeine in die Klammer schreibt funktioniert das ganze.
zb.
v_neu.change ( 111 );Jedoch, was genau "bewirkt" die Zahl in der Klammer?
Kann mir das einer erklären?und warum klappt es nicht ohne Zahl?
-
volkard schrieb:
int main() { NEU_NEU v_neu; v_neu.change(NEU(2)); }Aber die Klassen sind doch Unfug.
Auf deine Art funktioniert das auch.

ja, die Klassen machen keinen Sinn,
ich versuche einfach die korrekte Syntax auswendig zu lernen,
weil es in dem Skript vom prof. unglaublich beschiessen erklärt ist. . .
-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++ (auch C++0x und C++11) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
void change ( NEU zx)Das benötigt, wie der compiler völlig zutreffend gesagt hat, einen parameter vom Typ neu.
Mit
v_neu.change();Gibst du ihm aber keinen. => Fehler.
Mit einer Zahl klappt es aus folgendem Grund, auch wenn es kein NEU ist. Durch den KonstruktorNEU ( int a=999) { secret = a;}kann er aus der Zahl nämlich ein NEU machen, und das übergibt er dann der Funktion "change".