I en verden af C + + , bibliotek producenter og klient programmører bruger bibliotekerne til at sammensætte programmer , der ofte er større biblioteker. Biblioteker består af klasser . A C + + klasse har adgangskontrol funktioner, der definerer strenge grænser mellem klassen producenten og kunden programmører. Disse er nødvendige for at holde klienten programmører fra at røre kritiske kodesektioner og gøre det muligt bibliotekets producenterne til at foretage interne ændringer uden meddelelse . Ting du skal
bog om C + + programmering
Vis Flere Instruktioner
1
Forstå adgang beregnere fra C + + , der bestemmer klassen grænser. Disse er angivet med de eksplicitte søgeord "offentlig ", " private " og " beskyttet ". Ved at identificere et medlem funktion med et af disse søgeord , styrer du adgangsniveauet for det pågældende medlem funktion.
2
Brug " offentligheden " søgeord for at gøre en definition til rådighed for alle , herunder klient programmører. < br >
3
Påfør den "private " søgeord , når du ikke ønsker nogen ud over dig selv få adgang til en klasse definition. Private definitioner kan kun tilgås af andre medlem funktioner , der hører til den pågældende klasse . Tænk på "private" som en firewall , der beskytter den interne gennemførelse af en definition fra en klient programmør.
4
Erklær en definition " beskyttet" , når du kun vil arve klasser få adgang til denne definition. Arver klasser eller klasser , der stammer funktionalitet fra en klasse ikke kan få adgang til private definitioner , men de kan få adgang til definitioner markeret som beskyttet.
5
Se følgende eksempel for at få en bedre forståelse af trin 2 til 4 og adgangskontrol : Hej class CFile {
offentligt : Hej int Open ( const char * filename) ;
private : Salg bool FileExists () const ;
beskyttet : Hej int PixelCount ();
};
//privat funktion " FileExists " kan bruges af medlem funktioner i definition
int CFile :: Open ( const char * filename) {
hvis (true == CFile :: FileExists () )
kaste ...
}
//arve klasse kan bruge beskyttede funktion " PixelCount " base class
klasse CImageFile : public CFile {
offentligheden : Hej void SomeFunc () {
int x = CFile :: PixelCount ();
};
};
//udførelse området
int main () {
CFile fil ,
file.Open ( referral.txt )
if ( true == file.Exists ( ) ) //compiler fejl
int x = file.PixelCount //compiler error
}