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

bookFriend-nøkkelordet

Nøkkelordet friend er en unik konstruksjon som skiller seg fra de vanlige prinsippene for innkapsling i objektorientert programmering. Det gir en funksjon eller en annen class tilgang til private og protected medlemmer i 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 tilnærmingen bryter innkapslingen fordi den lar eksterne enheter få tilgang til class-medlemmer. Likevel kan det finnes situasjoner hvor dette er nødvendig. 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 det finnes ingen tilgangsmetode fordi vi ønsker å hindre ekstern tilgang til den fra utenfor class. Men hva om det oppstår et behov for å bruke en ekstern algoritme for kryptering og dekryptering? Det er her friend-keyword kommer inn i bildet.

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 vanligste bruken av friend-nøkkelordet oppstår når raske løsninger er nødvendige, og du har planer om å refaktorere det senere. Det er å foretrekke å designe dine class-relasjoner uten å være avhengig av dette, selv om spesifikke situasjoner fortsatt kan oppstå.

question mark

Hva brukes friend-nøkkelordet til?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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?

Awesome!

Completion rate improved to 3.13

bookFriend-nøkkelordet

Sveip for å vise menyen

Nøkkelordet friend er en unik konstruksjon som skiller seg fra de vanlige prinsippene for innkapsling i objektorientert programmering. Det gir en funksjon eller en annen class tilgang til private og protected medlemmer i 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 tilnærmingen bryter innkapslingen fordi den lar eksterne enheter få tilgang til class-medlemmer. Likevel kan det finnes situasjoner hvor dette er nødvendig. 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 det finnes ingen tilgangsmetode fordi vi ønsker å hindre ekstern tilgang til den fra utenfor class. Men hva om det oppstår et behov for å bruke en ekstern algoritme for kryptering og dekryptering? Det er her friend-keyword kommer inn i bildet.

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 vanligste bruken av friend-nøkkelordet oppstår når raske løsninger er nødvendige, og du har planer om å refaktorere det senere. Det er å foretrekke å designe dine class-relasjoner uten å være avhengig av dette, selv om spesifikke situasjoner fortsatt kan oppstå.

question mark

Hva brukes friend-nøkkelordet til?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 6
some-alt