c++ Anfänger
-
bladeexx schrieb:
Ja ich lese die Beiträge.
Eine andere Frage, wenn ich die Fkt. vor der Klasse definiere, dann brauche ich doch gar nicht mehr die friend deklaration oder?
"Non-friends" dürfen allerdings nicht auf non-public-Member zugreifen....
EDIT: Mal wieder zu spät
Gruß,
Simon2.
-
Nur, dass das eine mit dem anderen nichts zu tun hat. Die Deklaration vor der Klasse macht die Funktion gewissermaßen überhaupt erst bekannt, die friend-Deklaration erlaubt der Funktion Zugriff auf private Mitglieder von stringc. Wenn Du das nicht brauchst, kannst Du die friend-Deklaration natürlich weglassen.
-
Ah, ok ich danke euch vielmals!!!!

mal eine ganz blöde Frage. Kann ich die Fkt. str() ohne den friend operator in der Klasse deklarieren, oder ist es dann keine Daklaration?
-
Klar kannst du das, nur ist deine Funktion dann eine Memberfunktion der Klasse und keine freie Funktion mehr.
-
bladeexx schrieb:
mal eine ganz blöde Frage. Kann ich die Fkt. str() ohne den friend operator in der Klasse deklarieren, oder ist es dann keine Daklaration?
Allmählich bezweifle ich auch, dass du die Beiträge liest...

Nochmals: Mit
frienddeklariert man keine Funktionen, sondern erlaubt den Zugriff von aussen! Das steht übrigens bereits in meinem letzten Post.
-
Braunstein schrieb:
Klar kannst du das, nur ist deine Funktion dann eine Memberfunktion der Klasse und keine freie Funktion mehr.
D.h. in meinem Fall könnte ich auch der Klasse Value noch die Klasse Stringc vererben und den friend opeator wegnehme dann müsste auch gehen oder? Oder bringe ich da jetzt was durcheinander?
-
Nexus schrieb:
Allmählich bezweifle ich auch, dass du die Beiträge liest...

Doch ich lese das alles, nur es ist viel neues für mich und ich will und versuche es zu verstehen, sry dass es bei mir nicht sofort ankommt und ich vieles nachfragen muss

-
Sry dass ich euch damit nerve, aber eine Frage, mir wurde gesagt, dass der Code früher mit Solaris System Compiliert wurde und es lief. Kann es sein dass sich Kompiler so geändert haben, oder liegt hier ein allgemeiner c++ Fehler vor?
-
bladeexx schrieb:
Sry dass ich euch damit nerve, aber eine Frage, mir wurde gesagt, dass der Code früher mit Solaris System Compiliert wurde und es lief. Kann es sein dass sich Kompiler so geändert haben, oder liegt hier ein allgemeiner c++ Fehler vor?
In Prä-Standard C++ wurden Namen aus friend-Deklarationen unmittelbar im umliegenden Namensraum sichtbar - insofern hat sich hier die Sprache verändert.
-
Ok.
Danke euch allen nochmals