Partilhar via


Funções friend

Uma função friend é uma função que não é membro de uma classe, mas que tem acesso a membros particulares e protegidos da classe. As funções friend não são consideradas membros de classe; elas são funções externas normais que recebem privilégios de acesso especiais. As friends não estão no escopo da classe e não são chamadas usando os operadores da seleção de membro (. e –>) a menos que sejam membros de outra classe. Uma função friend é declarada pela classe que está concedendo acesso. A declaração friend pode ser colocada em qualquer lugar da declaração da classe. Ela não é afetada pelas palavras-chave de controle de acesso.

O exemplo a seguir mostra uma classe Point e uma função friend, ChangePrivate. A função friend tem acesso ao membro de dados particular do objeto Point que ela recebe como um parâmetro.

Exemplo

// friend_functions.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class Point
{
    friend void ChangePrivate( Point & );
public:
    Point( void ) : m_i(0) {}
    void PrintPrivate( void ){cout << m_i << endl; }

private:
    int m_i;
};

void ChangePrivate ( Point &i ) { i.m_i++; }

int main()
{
   Point sPoint;
   sPoint.PrintPrivate();
   ChangePrivate(sPoint);
   sPoint.PrintPrivate();
}
  

Consulte também

Referência

friend (C++)