venerdì, febbraio 02, 2007

Singleton

Ciao a tutti,
oggi c'è stato il primo appello d'esame... a me è stato chiesto, durante la parte informatica della prova orale, di implementare la seguente classe "singleton" (vedere il collegamento nei Quaderni oppure qui).La particolarità di un singleton è che può esistere al più UNO ED UN SOLO oggetto di tipo singleton. Se leggete l codice infatti potete vedere che il costruttore è "private" e perciò non è possibile fare una dichiarazione standard, come del tipo.
singleton pluto;
Il costruttore viene chiamato con il metodo istanza() che fa parte esso stesso della classe singleton. Ma come è possibile usare un metodo di una classe se nessun oggetto del tipo di "classe" è stato dichiarato.
La soluzione sta nell'utilizzo della parola chiave static che in pratica permette che il metodo esista "di per sè" senza l'esistenza della classe ( e quindi può essere utilizzato anche senza dichiarare la classe stessa).
L'operatore di scope :: (come quello che si utilizza in std::cout) utilizzato in singleton::istanza() permette invece di mettersi nel namespace... (di cui posseggo solo un vago concetto intuitivo) della classe singelton.
Potete trovare l'header file singleton.h (con l'implementazione) e il programma singleton.cpp nei file del gruppo.
Ciao ciao

Nessun commento: