Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Friend-nøgleordet | Oversigt Over Indkapsling
C++ OOP

bookFriend-nøgleordet

Nøgleordet friend udgør en unik konstruktion, der adskiller sig fra de almindelige indkapslingsprincipper i objektorienteret programmering. Det tillader en funktion eller en anden class at få adgang til private og protected medlemmer af en 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(); }

Denne tilgang bryder indkapslingen, fordi den tillader eksterne enheder at få adgang til class-medlemmer. Der kan dog være situationer, hvor det er nødvendigt. For eksempel:

KeyManager.h

KeyManager.h

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

encryptionKey holdes private, og der gives ikke nogen accessor-metode, fordi ekstern adgang til den fra udenfor class ønskes forhindret. Men hvis der opstår behov for at anvende en ekstern algoritme til kryptering og dekryptering, er det her friend-keywordet kommer i spil.

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; };

Den mest almindelige anvendelse af friend-nøgleordet opstår, når hurtige løsninger er nødvendige, og du har til hensigt at omstrukturere det senere. Det er at foretrække at designe dine class-relationer uden at være afhængig af det, selvom specifikke scenarier stadig kan forekomme.

question mark

Hvad bruges friend-nøgleordet til?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

Can you give an example of how the friend keyword is used in code?

What are some alternatives to using the friend keyword?

Are there any risks or drawbacks to using the friend keyword?

bookFriend-nøgleordet

Stryg for at vise menuen

Nøgleordet friend udgør en unik konstruktion, der adskiller sig fra de almindelige indkapslingsprincipper i objektorienteret programmering. Det tillader en funktion eller en anden class at få adgang til private og protected medlemmer af en 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(); }

Denne tilgang bryder indkapslingen, fordi den tillader eksterne enheder at få adgang til class-medlemmer. Der kan dog være situationer, hvor det er nødvendigt. For eksempel:

KeyManager.h

KeyManager.h

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

encryptionKey holdes private, og der gives ikke nogen accessor-metode, fordi ekstern adgang til den fra udenfor class ønskes forhindret. Men hvis der opstår behov for at anvende en ekstern algoritme til kryptering og dekryptering, er det her friend-keywordet kommer i spil.

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; };

Den mest almindelige anvendelse af friend-nøgleordet opstår, når hurtige løsninger er nødvendige, og du har til hensigt at omstrukturere det senere. Det er at foretrække at designe dine class-relationer uden at være afhængig af det, selvom specifikke scenarier stadig kan forekomme.

question mark

Hvad bruges friend-nøgleordet til?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 6
some-alt