PDA

Visualizza la versione completa : [C++] Uso di "friend" anche su operatori aritmetici


Gianni91
30-07-2011, 09:12
Ragazzi ho una domanda sulle classi in C++...

Perchè non scriviamo friend anche agli operatori aritmetici??Non accedono anche loro ai membri privati della classe??

es:
class nn{
private:
public:
friend ostream& operator<<();
nn& operator%=(const nn& ); -------------------------------->perché non friend nn& operator%=(const nn& );
}
grazie!! :ciauz:

MItaly
30-07-2011, 21:18
Lì stai dichiarando l'operatore + come funzione membro, per cui può accedere già di suo ai campi privati.
L'operatore di inserimento in stream, invece, non può essere implementato come funzione membro, dato che il tipo che sta a sinistra dell'operatore (ostream&) non corrisponde a quello della classe. Per questo motivo va implementato come funzione libera, che per poter accedere ai membri privati della classe deve essere friend.

Gianni91
30-07-2011, 22:56
ok perfetto grazie mille!! XD

MItaly
01-08-2011, 00:38
:ciauz:

Loading