Dans le monde du C + +, les producteurs de la bibliothèque et les programmeurs clients utilisent les bibliothèques de mettre en place des applications qui sont souvent plus grandes bibliothèques. Les bibliothèques sont constitués de classes . Une classe C + + dispose de fonctionnalités de contrôle d'accès qui définissent des limites strictes entre le producteur de classe et les programmeurs clients . Ceux-ci sont nécessaires pour maintenir les programmeurs clients de toucher des sections de code critiques et de permettre aux producteurs de la bibliothèque pour faire des changements internes sans notification. Choses que vous devez
livre sur le C + + programmation
Afficher plus Instructions
1
Comprendre les spécificateurs d' accès fourni par C + + qui déterminent les limites de classes . Ceux-ci sont indiquées par les mots-clés explicites «public», «privé» et «protégé» . En identifiant une fonction de membre d'un de ces mots clés , vous pouvez contrôler le niveau d'accès de cette fonction de membre.
2
Utilisez le mot «public» pour rendre une définition accessible à tous, y compris les programmeurs clients .
3
Appliquer le mot "privé" si vous ne voulez pas que quelqu'un d'autre que vous pour accéder à une définition de classe . Définitions privés ne sont accessibles que par d'autres fonctions membres qui appartiennent à la classe en question. Pensez à "privé" comme un pare-feu qui protège l'implémentation interne d'une définition d'un programmeur client .
4
Déclarer une définition «protégé» lorsque vous souhaitez uniquement aux classes qui héritent d'accéder à cette définition. Héritant des classes ou des classes qui dérivent les fonctionnalités d'une classe ne peut pas accéder définitions privés , mais ils peuvent accéder définitions marqués comme protégés.
5
Reportez-vous à l'exemple suivant pour acquérir une meilleure compréhension des étapes 2 à 4 et le contrôle d'accès :
classe CFile {
publique :
int Ouvert (const char * filename) ;
privé : Photos FileExists bool () const ;
protégé:
int pixelCount (); }
;
//Fonction " FileExists « privées peuvent être utilisées par les fonctions membres dans la définition
int CFile :: Open (const char * filename) {
si (true == CFile :: FileExists ())
jeter ...
}
//classe héritant peut utiliser la fonction protégée " pixelCount " de classe de base
classe CImageFile : CFile publique {
publique :
vide somefunc () { int x =
CFile :: pixelCount (); }
;
};
//exécution zone
int main () {
fichier CFile ;
File.Open ( referral.txt ) ;
si (true == File.Exists ()) //erreur de compilation
int x = file.PixelCount //erreur de compilation
}