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 
 }