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
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
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

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