La classe SalaGioco
rappresenta la sala o la fila nella quale i giocatori attendono.
Class
SalaGioco
{
friend ostream& operator<<(ostram& os, const SalaGioco&
aSalaGioco);
public:
SalaGioco():
m_pTesta(0){}
~SalaGioco(
){ Azzera(); }
void
AggiungiGiocatore();
void
RimuoviGiocatore();
void
Azzera();
private:
Giocatore*
m_pTesta;
};
Il membro dati
m_pTesta è un
puntatore che indica l'oggetto Giocatore,
il quale rappresenta la prima persona nella coda. m_pTesta
è l'inizio della coda. Poiché ogni oggetto Giocatore ha
un membro dati m_pPros,
è possibile collegare un gruppo di oggetti Giocatore
in una lista collegata.
Elementi individuali della lista collegata sono chiamati nodi.
Un modo di pensare ai nodi del giocatore è come un gruppo di vagoni
connessi tra loro. Ogni vagone porta un nome e sono collegati
attraverso un puntatore chiamato m_pPros.
La classe SalaGioco
alloca la memoria su heap
per ciascuno dei giocatori sulla lista. La classe SalaGioco fornisce
accesso al primo oggetto Giocatore
in testa alla lista. Il costruttore è molto semplice e inizializza i
dati membro di m_pTesta a 0, con un puntatore nullo. Il distruttore
chiama semplicemente Azzera(), il quale rimuove tutti i giocatori
dalla lista e libera la memoria allocata. AggiungiGiocatore()
istanzia un nuovo oggetto Giocatore
su heap, e lo aggiunge
alla fine della lista. RimuoviGiocatore()
toglie il primo oggetto Giocatore
dalla lista e libera la memoria allocata. Viene dichiarata la
funzione operator<<()
amica di SalaGioco, in
quanto l'oggetto SalaGioco
possa essere visualizzato con cout
usando l'operatore <<.
Nessun commento:
Posta un commento