Una variabile dati statica è un singolo membro dati che
esiste per l'intera classe. Nella definizione della classe, io
definisco un membro dati statico per immagazzinare il numero degli
oggetti Roditore che sono stati istanziati, usando la seguente
linea di codice, la quale dichiara il dato i_Totali.
static int i_Totali; //membro dati
statico, numero dei roditori
Possono essere dichiarati i propri dati statici come mostrato
nella riga di esempio così come ho fatto, la dichiarazione deve
essere preceduta dalla parola chiave static. Inoltre è
possibile dare il prefisso al nome della variabile s_nome, in modo da
riconoscerla immediatamente. Al di fuori della definizione della
classe, inizializzo il valore della variabile statica assegnandogli 0
ad essa.
int Roditore::i_Totali =0;
//inizializzazione membri dati statici
Da notare che i membri dati sono qualificati tramite Roditore::
come necessario per le definizioni esterne alla classe, il membro
dati deve essere associato al nome di essa. In questo modo il
programma sa che il valore assegnato alla classe Roditore è
0.
Accesso alle variabili dati statiche
E' possibile accedere alle variabili dati statiche che siano
pubbliche da qualsiasi parte nel programma. In main(), si
accede a i_Totali con la seguente linea, la quale mostra valore 0 ed
il numero dei Roditori istanziati.
cout << “Il numero
totale dei roditori e': ”;
cout <<
Roditore::i_Totali <<endl;
E' inoltre possibile accedere ai dati statici all'interno del
costruttore di Roditore, mediante la seguente linea che incrementa
i_Totali.
++i_Totali;
Questo significa che ogni volta che un oggetto viene istanziato,
il valore di i_Totali viene incrementato. Da notare che all'interno
del costruttore non vi è la necessita di qualificare il nome della
variabile tramite Roditore::
Tuttavia in questo caso i membri statici sono stati dichiarati
come pubblici, è possibile renderli anche privati, ma come ogni
altro membro dati, vi può accedere solo una funzione membro della
classe.
Definire una Funzione membro statica
Una funzione membro statica esiste per l'intera classe. Viene
definita nella classe Roditore, una funzione membro che ci
permette di ottenere il valore totale degli oggetti istanziati
(i_Totale), con le seguenti linee di codice:
static int DaiTotali()
//funzione membro statica
{ return i_Totali; }
E' possibile definire la funzione statica come tutte le altre
funzioni, solo deve essere preceduta nella definizione dalla parola
chiave static.
Nessun commento:
Posta un commento