PDA

View Full Version : [C++] funzioni friend


leon84
23-05-2007, 12:07
Una funzione friend dichiarata e definita in una classe gli consente di accedere ai membri privati di una classe. Si dice che non è una funzione membro della classe ma allora perché dichiararla in una classe ?

Mi date qualche delucidazione ?

E poi : se sta nella classe allora ogni funzione membro ha diritto di accesso a tutti i membri della classe.

leon84
23-05-2007, 18:42
up

cionci
23-05-2007, 23:51
La dichiarazione all'interno della classe serve per dire al compilatore di quale classe deve essere friend...
Quando farai l'overloading degli operatori scoprirai che certe volte avere una funzione friend è molto utile...anzi...per certi operatori è "quasi" obbligatorio...

leon84
24-05-2007, 09:45
La dichiarazione all'interno della classe serve per dire al compilatore di quale classe deve essere friend...
Quando farai l'overloading degli operatori scoprirai che certe volte avere una funzione friend è molto utile...anzi...per certi operatori è "quasi" obbligatorio...

Quindi se ho :


Class C2 {
int a,b;
int x();
}

Class C {
int a,b;
friend f(C c, C2 c2);
}



In questo caso la funzione friend f potrà solamente accedere agli attributi a e b dell'oggetto c ma non dell'oggetto c2 giusto ?

cionci
24-05-2007, 10:41
Giusto...