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

bookFriend-nøkkelordet

Nøkkelordet friend utgjør en unik konstruksjon som avviker 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 med innkapsling fordi den lar eksterne enheter få tilgang til class-medlemmer. Det kan likevel 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 utenfra 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 til hensikt å refaktorere det senere. Det er å foretrekke å designe dine class-relasjoner uten å være avhengig av det, 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?

bookFriend-nøkkelordet

Sveip for å vise menyen

Nøkkelordet friend utgjør en unik konstruksjon som avviker 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 med innkapsling fordi den lar eksterne enheter få tilgang til class-medlemmer. Det kan likevel 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 utenfra 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 til hensikt å refaktorere det senere. Det er å foretrekke å designe dine class-relasjoner uten å være avhengig av det, 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