Selbstverliebte Klasse
- 
					
					
					
					
 Nö isses nich oder hast du mit all deinen freunden sex ? Die kennen sich halt nur. Den einzigen vorteil den ich da sehe ist dass man schnell mal auf die attribute anderer instanzen zugreifen kann ohne getter und setter implementieren zu müssen. Aber ansonsten. class me_myself_and_i{ friend class me_myself_and_i; public: void do_sth_with_friend(me_myself_and_i &inst){ inst.attr1_ = 3; } private: int attr1_; int attr2_; //... usw. };Hab allerdings nich getestet ob das wirklich geht ... denk ich mir einfach mal. 
 
- 
					
					
					
					
 prolog schrieb: Den einzigen vorteil den ich da sehe ist dass man schnell mal auf die attribute anderer instanzen zugreifen kann ohne getter und setter implementieren zu müssen. Aber ansonsten. kann man auch so. Siehe z.B. operator=, copy-Ctor und konsorten. 
 
- 
					
					
					
					
 Aber kann man das nich nur bei diesen beiden ? Dachte ich bisher immer. Weiss ich jetzt echt nicht. 
 
- 
					
					
					
					
 @prolog: nein, das geht immer. schau: #include <iostream> class nofriend{ int secret; public: nofriend(int v=0):secret(v){} void talk_about(const nofriend& foe){ std::cout<<foe.secret<<std::endl; } }; int main(){ nofriend nf1(23), nf2; nf2.talk_about(nf1); }nf2 spricht einfach über private details von nf1, obwohl dieser garnicht sein freund ist! 
 
- 
					
					
					
					
 Ok danke, und kann mir nun auch einer den sinn erklären. Ist ja in diesem fall nicht so doll mit kapselung dann. Aber gut dass ich immer umsonst getter geschrieben hab.  
 
- 
					
					
					
					
 Was hättest du davon, wenn du nur innerhalb eines Objekts auf private Teile zugreifen kannst und nicht auf Klassenebene? 
 
- 
					
					
					
					
 tomhet schrieb: hier 
 www.nondot.org/sabre/Mirrored/AdvProgLangDesign/finkel05.pdfunter "Challenge Exercises" gibts bei 5.17 auch die Frage: 
 "What is the effect of a C++ class declaring that it is its own friend?"Es muss einen Effekt haben, in den EMule Sourcen habe ich es auch gesehen. Nein, es hat keinen. Wenn man sich das genannte pdf-Dokument ganz anschaut, so findet man als einzige Stelle, wo von friends in C++ die Rede ist, eine Tabelle auf Seite 162 (noch Kap.5). Lt. dieser Tabelle gibt es zwischen 'same' und 'friend' keinen Unterschied. 
 Ich nehme daher an, die erwartete Antwort auf obige Frage ist: "no effect"Der Comeau C++-Compiler übersetzt es zwar (ist wohl kein Fehler); liefert aber die Warnung: "witzlose friend-Deklaration"  Gruß 
 Werner
 
- 
					
					
					
					
 Kann der Comeau Compiler Deutsch? 
 
- 
					
					
					
					
 soso, dann wollten die Emule Programmierer wohl besonders witzig sein  
 
- 
					
					
					
					
 Bei welcher Klasse benutzen die es denn? 