Singleton freundschaft auf Funktion?
-
Hi,
wie man Freundschaften zwischen klassen hinbekommt hab ich rausgefunden, aber wie ist das mit singleton auf funktion?
-
stell die frage mal vernuenftig.
-
was issn daran nicht zu verstehen?
Wie kann ich die Freundschaft zwischen eines Singletons und einer globalen Funktion erreichen, so das die Funktion auf die member des Singletons zugreifen kann?
-
*******'''''''' schrieb:
was issn daran nicht zu verstehen?
Wie kann ich die Freundschaft zwischen eines Singletons und einer globalen Funktion erreichen, so das die Funktion auf die member des Singletons zugreifen kann?
verstehe ich auch nicht so ganz... eine singleton-klasse liefert doch bei einem aufruf sowieso eine referenze auf sich selber zurück...
der sinn einer singleton-klasse ist es doch, dass man sicherstellt, dass es nur ein objekt dieser klasse gibt!aber bezüglich deines friend-problems....
du musst in der singelton-klasse die globale funktion als friend deklarieren, wenn du nicht genau weißt, wie man das macht, dann schau mal in einem tutorial nach...
-
Etwa so:
class Single { friend void f(); private: int x; Single(){} public: static Single *getInstance() { static Single *s = 0; if (s == 0) s = new Single; return s; } }; void f() { Single *s = Single::getInstance(); s->x = 10; // Klappt weil friend }
-
@bug
vielen dank! Der einzigst hilfreiche Post der nicht von 2 spammern gepostet wurde und der direkt ins schwarze getroffen hatVielen dank!
-
Ein Blick in die FAQ hätte auch geholfen:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39487.html