Nel mondo del C + + , dei produttori biblioteca e programmatori client utilizzano le librerie di mettere insieme le applicazioni che sono spesso le biblioteche più grandi. Biblioteche consistono di classi . Una classe C + + dispone di funzionalità di controllo degli accessi che definiscono i confini precisi tra il produttore di classe ed i programmatori client . Queste sono necessarie per mantenere i programmatori client di toccare sezioni critiche del codice e per consentire ai produttori di libreria di apportare modifiche interne senza notifica . Cose che ti serviranno
Prenota su C + + programmazione
Show More Istruzioni
1
Comprendere il specificatori di accesso fornito da C + + che determinano i confini di classe . Questi sono indicati con le parole chiave esplicite " pubblico", " private " e "protetto" . Identificando una funzione membro di una di queste parole chiave , è possibile controllare il livello di accesso di tale funzione membro .
2
utilizzare la parola chiave "pubblica" per rendere una definizione a disposizione di chiunque , compresi i programmatori client .
3
applicare la parola chiave "privato" quando non si desidera che nessuno oltre a voi stessi di accedere a una definizione di classe . Definizioni private potranno essere visitate solo da altre funzioni membro che appartengono alla classe in questione . Pensare di "privato ", come un firewall che protegge l'implementazione interna di una definizione da un programmatore client .
4
Dichiarare una definizione "protetto" , quando si vuole solo ereditando le classi per accedere a tale definizione . Ereditare classi o classi che derivano le funzionalità da una classe non può accedere definizioni private , ma possono accedere le definizioni contrassegnati come protetti .
5
Consultare il seguente esempio per ottenere una migliore comprensione dei punti da 2 a 4 e il controllo di accesso :
classe CFile {
pubblico :
int Open ( const char * filename ) ;
privato :
FileExists bool () const ;
protetta :
int PixelCount (); }
;
//private funzione " FileExists " può essere utilizzato da funzioni membro nella definizione
int CFile :: Open ( const char * filename) {
se ( veri == CFile :: FileExists () ) per buttare ...
}
//classe che eredita può usare la funzione protetta " PixelCount " della classe base
classe CImageFile : CFile pubblico {
pubblico :
vuoto SomeFunc ( ) { int x =
CFile :: PixelCount (); }
;
};
//esecuzione zona
int main ( ) {
file di CFile ;
File.Open ( referral.txt ) ;
se ( veri == File.Exists ( ) ) //errore del compilatore
int x = file.PixelCount //errore del compilatore
}