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
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
123456class 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
CryptographicAlgorithm.h
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.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Posez-moi des questions sur ce sujet
Résumer ce chapitre
Afficher des exemples du monde réel
Awesome!
Completion rate improved to 3.13
Le Mot-Clé Friend
Glissez pour afficher le menu
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
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
123456class 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
CryptographicAlgorithm.h
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.
Merci pour vos commentaires !