I en värld av C + + , bibliotek producenter och programmerare klient använder biblioteken för att sätta ihop program som ofta är större bibliotek . Bibliotek består av klasser . A C + + klass har funktioner för åtkomstkontroll som definierar strikta gränser mellan klassen producenten och programmerarna klient . Dessa är nödvändiga för att hålla kundens programmerare från att röra kritiska delar av koden och att göra det möjligt för bibliotek producenter att göra interna förändringar utan anmälan . Saker du behöver
bok om C + + programmering
Visa fler instruktioner
1
Förstå åtkomstspecifikationer tillhandahålls av C + + som bestämmer klassgränserna . Dessa anges av de explicita nyckelord " offentligt ", " privat " och " skyddad ". Genom att identifiera en medlem funktion med någon av dessa sökord , styr du åtkomstnivån för den medlemmen funktion .
2
Använd " allmänheten " nyckelordet för att göra en definition tillgänglig för alla , inklusive klientmedel programmerare .
3
Applicera " privat " nyckelordet när du inte vill ha någon annan än dig själv att komma en klass definition . Privata definitioner kan endast nås av andra medlemsfunktioner som hör till klassen i fråga . Tänk på " privat " som en brandvägg som skyddar den interna tillämpningen av en definition från en klient programmerare .
4
Deklarera en definition " skyddad " när du vill bara ärva klasser att komma åt denna definition . Ärva klasser eller klasser som härrör funktionalitet från en klass kan inte komma åt privata definitioner , men de kan komma definitioner markerade som skyddas .
5
Se följande exempel för att få en bättre förståelse av steg 2 till 4 och åtkomstkontroll :
class CFile {
allmänheten :
int Open ( const char * filnamn);
privat :
bool FileExists ( ) const;
skyddad :
int PixelCount ();
};
//private function " FileExists " kan användas av medlemsfunktioner i definitionen
int CFile :: Open ( const char * filename ) {
om ( true == CFile :: FileExists () ) katalog kasta ...
}
//ärva klassen kan använda skyddat funktionen " PixelCount " av basklass
klass CImageFile : offentlig CFile {
allmänheten :
void SomeFunc ( ) {
int x = CFile :: PixelCount ();
};
};
//utförande område
int main ( ) {
CFile fil ,
file.Open ( referral.txt ) ,
if ( true == file.Exists ( ) ) //kompileringsfel
int x = file.PixelCount , //kompileringsfel
}