venerdì 26 ottobre 2012

Definire funzioni accessorie

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