Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A friend é uma função que não é um membro de uma classe, mas tem acesso aos membros da classe de particulares e protegidos.Funções de amigo não são consideradas membros de classe; eles são funções externas normais que recebem os privilégios de acesso especial.Amigos não estão no escopo da classe e eles não são chamados usando os operadores de seleção de membro (. e –>) a menos que sejam membros de outra classe.A friend função é declarada pela classe que está concedendo acesso.O friend declaração pode ser colocada em qualquer lugar na declaração da classe.Ele não é afetado por palavras-chave acesso controle.
A exemplo a seguir mostra um Point classe e a função de uma amigo, ChangePrivate.O friend função tem acesso ao membro de dados privados da Point que recebe como um parâmetro de objeto.
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();
}