Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara La Parola Chiave Friend | Panoramica sull'Incapsulamento
OOP in C++
course content

Contenuti del Corso

OOP in C++

OOP in C++

1. Fondamenti della OOP in C++
2. Costruttori e Distruttori
3. Panoramica sull'Incapsulamento
4. Panoramica sull'Ereditarietà
5. Panoramica sul Polimorfismo

book
La Parola Chiave Friend

La parola chiave friend rappresenta un costrutto unico, offrendo una deviazione dai principi standard di incapsulamento della programmazione orientata agli oggetti. Consente a una funzione o a un'altra class di accedere ai membri private e protected di una 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(); }

L'utilizzo di questo approccio viola l'incapsulamento poiché permette a entità esterne di accedere ai membri della class. Tuttavia, possono esserci situazioni in cui ciò è necessario. Ad esempio:

KeyManager.h

KeyManager.h

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

La encryptionKey viene mantenuta private e non viene fornito alcun metodo di accesso perché si desidera impedire l'accesso esterno da fuori la class. Tuttavia, se si presenta la necessità di utilizzare un algoritmo esterno per la cifratura e la decifratura, entra in gioco la parola chiave friend keyword.

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

L'uso più comune della parola chiave friend si presenta quando sono necessari interventi rapidi, con l'intenzione di effettuare una successiva rifattorizzazione. È preferibile progettare le relazioni tra le class senza farvi affidamento, anche se possono comunque verificarsi scenari specifici.

question mark

A cosa serve la parola chiave friend?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 6

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

course content

Contenuti del Corso

OOP in C++

OOP in C++

1. Fondamenti della OOP in C++
2. Costruttori e Distruttori
3. Panoramica sull'Incapsulamento
4. Panoramica sull'Ereditarietà
5. Panoramica sul Polimorfismo

book
La Parola Chiave Friend

La parola chiave friend rappresenta un costrutto unico, offrendo una deviazione dai principi standard di incapsulamento della programmazione orientata agli oggetti. Consente a una funzione o a un'altra class di accedere ai membri private e protected di una 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(); }

L'utilizzo di questo approccio viola l'incapsulamento poiché permette a entità esterne di accedere ai membri della class. Tuttavia, possono esserci situazioni in cui ciò è necessario. Ad esempio:

KeyManager.h

KeyManager.h

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

La encryptionKey viene mantenuta private e non viene fornito alcun metodo di accesso perché si desidera impedire l'accesso esterno da fuori la class. Tuttavia, se si presenta la necessità di utilizzare un algoritmo esterno per la cifratura e la decifratura, entra in gioco la parola chiave friend keyword.

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

L'uso più comune della parola chiave friend si presenta quando sono necessari interventi rapidi, con l'intenzione di effettuare una successiva rifattorizzazione. È preferibile progettare le relazioni tra le class senza farvi affidamento, anche se possono comunque verificarsi scenari specifici.

question mark

A cosa serve la parola chiave friend?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 6
some-alt