sabato 3 novembre 2012

Dichiarare e inizializzare una Variabile dati Statica

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