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
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 !