I en verden av C + + , bibliotek produsenter og klient programmerere bruke bibliotekene å sette sammen programmer som ofte er større bibliotekene . Bibliotekene består av klasser . En C + + klasse har adgangskontroll funksjoner som definerer strenge grenser mellom klassen produsent og klienten programmerere . Dette er nødvendig for å holde klienten programmerere fra berøre kritiske deler av koden og å muliggjøre bibliotek produsenter å lage interne endringer uten varsel . Du trenger Reserver på C + + programmering
Vis flere instruksjoner
en
Forstå tilgang byggebransjen levert av C + + som bestemmer klassen grenser. Disse er angitt med de eksplisitte søkeord "public ", " private " og " beskyttet ". Ved å identifisere et medlem funksjon med en av disse søkeordene , styrer du tilgang nivået fra medlemmet funksjon .
2
Bruk " public" nøkkelord for å gjengi en definisjon tilgjengelig for alle , inkludert klient programmerere .
3
Påfør "privat " søkeord når du ikke vil at noen andre enn deg selv å få tilgang til en klasse definisjon. Private definisjoner kan bare nås av andre medlem funksjoner som hører til klassen i spørsmålet. Tenk på " private" som en brannmur som beskytter den interne gjennomføringen av en definisjon fra en klient programmerer.
4
Erklærer en definisjon " beskyttet " når du vil bare arve klasser for å få tilgang til denne definisjonen . Arve klasser eller klasser som henter funksjonalitet fra en klasse kan ikke få tilgang til private definisjoner , men de kan få tilgang definisjoner merket som beskyttet.
5
Se følgende eksempel for å få en bedre forståelse av trinn 2 til 4 og tilgangskontroll : en klasse CFile {
public : en int Åpen ( const char * filnavn ) ;
private:
bool FileExists ( ) const ;
beskyttet :
int PixelCount ();
};
//private funksjon " FileExists " kan brukes av medlem funksjoner i definisjonen
int CFile :: Åpen ( const char * filnavn ) {
hvis ( sanne == CFile :: FileExists () )
kaste ...
}
//arve klasse kan bruke beskyttet funksjon " PixelCount " av base klasse
klasse CImageFile : public CFile {
public : en ugyldig SomeFunc ( ) {
int x = CFile :: PixelCount ();
};
};
//gjennomføring området
int main ( ) {
CFile fil,
File.open ( referral.txt ) ;
if ( true == file.Exists ( ) ) //kompilator feil
int x = file.PixelCount //kompilator feil
}