Una funzione accessoria permette
accesso indiretto ai dati membro. Poiché i_Fame
è privato, deve essere scritta la funzione accessoria DaiFame(), per
restituire questo valore di dato.
int Roditore::DaiFame()
const
{ return i_Fame;
}
Mentre per richiamare la funzione al lavoro viene
inserita nel main() la seguente linea:
cout << “Chiama
DaiFame():” << topo.DaiFame() << endl;
A questo punto ci si domanda come mai si vogliano
dichiarare i membri dati come privati per darne pieno accesso tramite
le funzioni accessorie. La risposta sta nel non garantire pieno
accesso. Come mostrato nella funzione MettiFame(), la quale
attribuisce il valore a i_Fame.
void Roditore::MettiFame(
int fame)
{ if (fame < 0 ) cout <<
“Non ci puo' essere un valore negativo della fame.” <<
endl;
else i_Fame = fame;
}
In questa funzione accessoria, per prima cosa ci si
assicura che il valore attribuito dalla funzione sia maggiore di
zero. Altrimenti il valore viene dichiarato illegale, pertanto non
viene modificato. In questo modo MettiFame() protegge
l'integrità di i_Fame, cosicché non possa avere valore
negativo. Come fatto qui molti programmatori iniziano il nome delle
loro funzioni accessorie con le parole Dai (Get) e Metti (Set).
Nessun commento:
Posta un commento