C + + propose trois niveaux de contrôle d'accès aux données à l'intérieur d'une classe. Les données privées ne sont pas accessibles par des fonctions non - membres ou des classes externes. Mais parfois, vous avez besoin d'accéder à ces données dans un programme, vous devez donc trouver un moyen de contourner cette règle C + + . La fonction permet un accès ami programmeur données privées . Lisez la suite pour apprendre comment utiliser les fonctions d' ami en C + + . Choses que vous devez
intermédiaire C + +
compilateur C + + avec un IDE
Afficher plus d' instructions
1
trouver une classe qui a des membres privés. Rappelez-vous que les données que vous ne déclarez pas sous un modificateur d'accès est privé par défaut :
classe Tutoriel { int
privateData ; //cette int est privé et est isolé de l'extérieur
publique mondiale : < br > Tutoriel (): privateData (5); constructeur //par défaut initialise privateData à 5
//...
2
Laisser une fonction non membre à lire privateData à l'étape 1 . Une fonction non - membre est une fonction qui existe en dehors Tutorial de classe. Précéder la déclaration de cette fonction par le mot ami et insérer la ligne dans le domaine privé de Tutoriel:
classe Tutoriel { int
privateData ;
ami vide Display (); //notre fonction non - membre
//...
Le mot clé privée raconte Tutorial classe qu'il peut faire confiance à display () , même si elle n'est pas l'une de ses fonctions de membre .
3
Soit un autre classe accéder aux données privées de Tutorial de classe. La déclaration d'un ami de classe est similaire. Précéder la déclaration de classe par l'ami mot-clé et insérer la ligne dans la zone de données privées de Tutoriel:
classe Tutoriel { int
privateData ;
ami vide Display ();
ami dehors des cours ; //notre classe externe
//...
maintenant à l'extérieur de la classe a des privilèges d' accès aux données privées
4
étude d'un programme C + + qui montre l'ami concepts , comme dans le code suivant. : Photos void display () {
Tutorial t;
cout }
en dehors des cours {
publique :
void display () {
Tutorial x ;
cout };
main () {
Display ();
extérieur x ;
x.Display (); }
5
Voir le résultat:
5
5