- Esiste un modo per aggirare le classi di protezione dichiarate.
- In una classe si possono dichiarare funzioni o classi friend
- Una funzione friend è una funzione, non un metodo, vale a dire è dichiarata
al di fuori di ogni classe
- Una funzione friend di una classe può agire su tutti i membri della classe, come se
fosse essa stessa un membro della classe
- Naturalmente, come i metodi static, non possiede un puntatore this,
quindi non può accedere agli attributi di un oggetto in maniera diretta, ma solo agli
attributi static
- Se però la funzione possiede un oggetto o un puntatore ad un oggetto del classe, sarà
in grado di accedere a tutti i membri di quegli oggetti, sia che siano private, protected o public,
come qualunque membro della classe
- Per dichiarare una funzione friend, inseriremo nella dichiarazione della classe, il prototipo
della funzione, preceduto dalla parola riservata friend
|