Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Le Mot-Clé Friend | Aperçu de l'Encapsulation
Programmation Orientée Objet en C++
course content

Contenu du cours

Programmation Orientée Objet en C++

Programmation Orientée Objet en C++

1. Fondamentaux de la POO en C++
2. Constructeurs et Destructeurs
3. Aperçu de l'Encapsulation
4. Aperçu de l'Héritage
5. Aperçu du Polymorphisme

book
Le Mot-Clé Friend

Le mot-clé friend constitue une construction unique, offrant une dérogation aux principes standards d'encapsulation de la programmation orientée objet. Il permet à une fonction ou à une autre class d'accéder aux membres private et protected d'une class.

main.cpp

main.cpp

copy
1234567891011121314151617
#include <iostream> class Example { private: const static int static_private_member = 0; friend void func(); // grants access to the private members to func() }; void func() { std::cout << Example::static_private_member; } int main() { func(); }

L'utilisation de cette approche rompt l'encapsulation car elle autorise des entités externes à accéder aux membres de la class. Cependant, il peut exister des situations où cela s'avère nécessaire. Par exemple :

KeyManager.h

KeyManager.h

copy
123456
class KeyManager { public: KeyManager(const std::string& key) : encryptionKey(key) {} private: std::string encryptionKey; };

La clé de chiffrement est maintenue en private, et aucune méthode d'accès n'est fournie car il est souhaité d'empêcher tout accès externe depuis l'extérieur de la class. Cependant, s'il devient nécessaire d'utiliser un algorithme externe pour le chiffrement et le déchiffrement, c'est là que le mot-clé keyword entre en jeu.

KeyManager.h

KeyManager.h

CryptographicAlgorithm.h

CryptographicAlgorithm.h

copy
12345678910
#include "CryptographicAlgorithm.h" class KeyManager { public: KeyManager(const std::string& key) : encryptionKey(key) {} private: std::string encryptionKey; // Allow CryptographicAlgorithm access to private members friend class CryptographicAlgorithm; };

Le cas d'utilisation le plus courant du mot-clé friend survient lorsque des correctifs rapides sont nécessaires, avec l'intention de refactoriser ultérieurement. Il est préférable de concevoir les relations entre vos class sans y recourir, bien que certains scénarios spécifiques puissent encore se présenter.

question mark

À quoi sert le mot-clé friend ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 6

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

course content

Contenu du cours

Programmation Orientée Objet en C++

Programmation Orientée Objet en C++

1. Fondamentaux de la POO en C++
2. Constructeurs et Destructeurs
3. Aperçu de l'Encapsulation
4. Aperçu de l'Héritage
5. Aperçu du Polymorphisme

book
Le Mot-Clé Friend

Le mot-clé friend constitue une construction unique, offrant une dérogation aux principes standards d'encapsulation de la programmation orientée objet. Il permet à une fonction ou à une autre class d'accéder aux membres private et protected d'une class.

main.cpp

main.cpp

copy
1234567891011121314151617
#include <iostream> class Example { private: const static int static_private_member = 0; friend void func(); // grants access to the private members to func() }; void func() { std::cout << Example::static_private_member; } int main() { func(); }

L'utilisation de cette approche rompt l'encapsulation car elle autorise des entités externes à accéder aux membres de la class. Cependant, il peut exister des situations où cela s'avère nécessaire. Par exemple :

KeyManager.h

KeyManager.h

copy
123456
class KeyManager { public: KeyManager(const std::string& key) : encryptionKey(key) {} private: std::string encryptionKey; };

La clé de chiffrement est maintenue en private, et aucune méthode d'accès n'est fournie car il est souhaité d'empêcher tout accès externe depuis l'extérieur de la class. Cependant, s'il devient nécessaire d'utiliser un algorithme externe pour le chiffrement et le déchiffrement, c'est là que le mot-clé keyword entre en jeu.

KeyManager.h

KeyManager.h

CryptographicAlgorithm.h

CryptographicAlgorithm.h

copy
12345678910
#include "CryptographicAlgorithm.h" class KeyManager { public: KeyManager(const std::string& key) : encryptionKey(key) {} private: std::string encryptionKey; // Allow CryptographicAlgorithm access to private members friend class CryptographicAlgorithm; };

Le cas d'utilisation le plus courant du mot-clé friend survient lorsque des correctifs rapides sont nécessaires, avec l'intention de refactoriser ultérieurement. Il est préférable de concevoir les relations entre vos class sans y recourir, bien que certains scénarios spécifiques puissent encore se présenter.

question mark

À quoi sert le mot-clé friend ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 6
some-alt