ExpertiDict

C++ · Essencial · Inglês · Técnico

friend

frɛndpalavra-chave

Declaração que dá a uma função ou classe externa acesso aos membros privados e protegidos de uma classe. A amizade não é herdada nem recíproca.

Onde usar

Muito usada em operator<< de saída, que precisa ser função livre mas ler campos privados. Em excesso, friend quebra o encapsulamento e merece discussão no review.

Em código

class P {
  int x_ = 3;
  friend std::ostream&
  operator<<(std::ostream& o, const P& p) {
    return o << p.x_;
  }
};

Exemplos

Make operator<< a friend so it can read the private fields.

Faça operator<< um friend para ele ler os campos privados.

Too many friends in this class, the encapsulation is gone.

Amigos demais nessa classe, o encapsulamento foi embora.

Cuidado

Friend não torna a função um membro: ela continua livre, e a declaração só concede o acesso.

Sinônimos

função amiga

Origem

Do inglês friend, amigo.

Veja também

Todos os termos de C++