In der Welt von C + +, Bibliothek Produzenten und Client -Programmierer verwenden die Bibliotheken zusammen zu stellen Anwendungen, die oft größer sind Bibliotheken. Bibliotheken bestehen aus Klassen . Ein C + + -Klasse verfügt über Funktionen, die Zutrittskontrolle strengen Grenzen zwischen Produzent und der Klasse der Client- Programmierer definieren . Diese sind notwendig, um Client- Programmierer berühren kritische Abschnitte des Codes zu halten und ermöglichen Bibliothek Produzenten interne Änderungen ohne Ankündigung vorzunehmen. Highlights zum Buch auf C + + -Programmierung
brauchen anzeigen Weitere Anweisungen
1
Verstehen Sie die Zugriffsbezeichner bereitgestellt von C + . + , Die bestimmen, die Klassengrenzen Diese werden durch die explizite Schlüsselwörter "public ", " private" und "protected angegeben . " Durch die Ermittlung einer Member-Funktion mit einem dieser Schlüsselwörter, steuern Sie die Zugriffsebene des Mitglieds Funktion .
2
Verwenden Sie die "public" Stichwort , eine Definition für jeden zugänglich zu machen, einschließlich Client- Programmierer.
3
Übernehmen Sie die "private" Schlüsselwort , wenn Sie nicht wollen, dass jemand außer dir Definition einer Klasse zuzugreifen. Privat Definitionen können nur durch andere Member-Funktionen , die der Klasse in Frage gehören zugegriffen werden. Denken Sie an "private ", wie eine Firewall, die das interne Implementierung einer Definition von einem Client- Programmierer schützt .
4
Declare eine Definition " geschützt ", wenn Sie nur erben Klassen , diese Definition zugreifen möchten. Vererben Klassen oder Klassen, die Funktionalität ergeben sich aus einer Klasse kann nicht auf private Definitionen , aber sie können Definitionen markiert als Protected Access .
5
Siehe das folgende Beispiel , um ein besseres Verständnis für die Schritte 2 zu gewinnen 4 und Zutrittskontrolle :
Klasse CFile {
public: int
Open ( const char * filename); Private :
bool FileExists ( ) const ;
protected:
int PixelCount (); }
;
//private function " FileExists " kann durch Member-Funktionen in Definition
int CFile :: Open (const char * filename) {
verwendet werden, wenn (true == CFile :: FileExists ())
werfen ...
}
//Erben Klasse kann geschützten Funktion " PixelCount " der Basisklasse
Klasse CImageFile verwenden : public CFile {
public:
nichtig SomeFunc () { int x =
CFile :: PixelCount (); }
;
};
//Ausführungsbereich
int main () {
CFile Datei;
file.Open ( referral.txt );
if (true == File.Exists ( )) //Compiler-Fehler
int x = file.PixelCount //Compiler-Fehler
}