Dyskusja na temat zmiennej globalnej i singletona
Ostatnio zmodyfikowano 2015-06-10 14:40
pekfos |
» 2015-06-09 21:49:41 Wydawało mi się że konstruktor wywoła się w tej lini. "vector <Element *> elementy" |
Jaką to robi różnicę, skoro zmienne definiujesz w różnych plikach? |
|
jankustosz Temat założony przez niniejszego użytkownika |
» 2015-06-09 21:51:14 Już wiem. Na początku funkcji main(), a właściwie WinMain(). Przeniesienie tych trzech globalnych zmiennych do glownej funkcji programu naprawilo problem. |
|
jankustosz Temat założony przez niniejszego użytkownika |
» 2015-06-09 22:10:25 Pisałeś że powinienem użyć singletonu. Mam teraz już ostanie pytanie W jaki sposób go użyć? W funkcji WndProc potrzebuje np. 5 elementów. (przycisk, napis, obrazek itd.) Funkcja typu GetSingleton w niczym mi się nie przyda. Przynajmniej mi się tak wydaje. |
|
pekfos |
» 2015-06-09 22:47:17 Deleguj zdarzenia do singletona, wszelkie elementy opakuj w klasy pochodne po jakimś "widget", czy czymś podobnym i trzymaj w singletonie wskaźniki na widgety. |
|
jankustosz Temat założony przez niniejszego użytkownika |
» 2015-06-10 14:40:18 Zrobiłem coś takiego. O to ci chodziło? #define singleton Baza::GetSingleton() class Baza { map < string, Element *> elemki; public: static Baza & GetSingleton() { static Baza objekt; return objekt; } void SetElement( string id, Element & elem ) { elemki[ id ] = & elem; } Element & GetElement( string id ) { return * elemki[ id ]; } int CzyIstnieje( string id ) { return elemki.count( id ); } void ClearAll() { elemki.clear(); } };
|
|
1 2 3 « 4 » |