Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dyskusja na temat zmiennej globalnej i singletona

Ostatnio zmodyfikowano 2015-06-10 14:40
Autor Wiadomość
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?
P-133401
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.
P-133402
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.
P-133405
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.
P-133407
jankustosz
Temat założony przez niniejszego użytkownika
» 2015-06-10 14:40:18
Zrobiłem coś takiego. O to ci chodziło?

C/C++
#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();
    }
};
P-133427
1 2 3 « 4 »
Poprzednia strona Strona 4 z 4