Funcții friend

O funcție friend are acces la membrii private și protected ai unei clase, deși nu este membră a ei.

class Cerc {
private:
  double raza;
public:
  Cerc(double r) : raza(r) {}
  friend double arie(const Cerc& c);  // declarație friend
};

double arie(const Cerc& c) {
  return 3.14159 * c.raza * c.raza;  // accesează private!
}

Cerc c(5);
cout << arie(c) << endl;  // 78.54
Funcțiile friend nu sunt membre ale clasei — nu se apelează cu .. Folosiți cu moderație, deoarece reduc encapsularea.