Função de amigo c ++

Função de amigo c ++
Uma função é um bloco de código que executa uma determinada tarefa e fornece a saída. É usado principalmente para eliminar o código repetitivo. Neste tutorial, examinaremos a função de amigo em C ++ e explicará seu conceito com exemplos de trabalho.

O que é um amigo função?

Função de amigos é uma função não-membro que pode acessar os membros privados e protegidos de uma classe. "Friend" é uma palavra -chave usada para indicar que uma função é o amigo de uma aula. Isso permite que o compilador saiba que a função específica é um amigo da aula especificada. A função de amigo deve poder acessar o membro privado e protegido de uma determinada classe. Sem a palavra-chave do amigo, uma função externa não membro pode acessar apenas os membros públicos de uma classe.

Principais características da função de amigos:

Aqui estão os principais recursos da função de amigo:

  1. Uma função de amigo não está no escopo da classe.
  2. A função de amigo não pode ser invocada usando uma instância de uma classe.
  3. Ele pode acessar os membros usando o objeto e o operador de pontos.

Sintaxe da função de amigo:

Aqui está a sintaxe da função de amigo:

classe classe_name_demo

..
..
amigo return_type function_name (arg_1, arg_2,…);
;

Exemplo de função de amigo:

Agora, vamos analisar um programa de exemplo para entender o conceito de função de amigo em c++. No programa de exemplo abaixo, temos a classe "Friend_Demo". Tem três tipos diferentes de membros de dados, eu.e., privado, protegido e público.

Nós definimos outra função, eu.e., “FriendDemo_func ()” fora do escopo da classe “FIRE_DEMO” e tentou acessar os membros (privados, protegidos e públicos) da classe “FIRE_DEMO”.

Mas, como você pode ver na saída abaixo quando compilamos o programa, ele lança erros de compilação. A função de amigo vai resolver exatamente este problema.

#incluir
usando namespace std;
Classe Friend_Demo

privado:
int i_private;
protegido:
int i_protected;
público:
int i_public;
;
Void FriendDemo_func ()

FIRE_DEMO FD;
fd.i_private = 10;
fd.i_protected = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;

int main ()

amigodemo_func ();
retornar 0;

No programa anterior, estávamos recebendo erros de compilação enquanto tentamos acessar os membros privados, protegidos e públicos de uma classe de uma função não-membro. Isso ocorre porque uma função não-membro não tem permissão para acessar os membros privados e protegidos de uma classe de fora do escopo da classe.

Agora, neste exemplo, declaramos "FIREDEMO_FUNC ()" função como um amigo dentro do escopo da classe, eu.e., "FIRE_DEMO":

amigo void frienddemo_func ();

Nós criamos um objeto, eu.e., "FD" da classe "Friend_Demo" dentro da função "FriendDemo_Func ()". Agora, podemos acessar os membros privados, protegidos e públicos da classe "Friend_Demo" usando o operador DOT. Atribuímos 10, 15 e 20 para i_private, i_protected e i_public, respectivamente.

Como você pode ver na saída abaixo, este programa agora é compilado e executado sem erros e imprimir a saída conforme esperado.

#incluir
usando namespace std;
Classe Friend_Demo

privado:
int i_private;
protegido:
int i_protected;
público:
int i_public;
amigo void frienddemo_func ();
;
Void FriendDemo_func ()

FIRE_DEMO FD;
fd.i_private = 10;
fd.i_protected = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;

int main ()

amigodemo_func ();
retornar 0;

Conclusão:

Neste artigo, expliquei o conceito de função de amigo em c++. Eu também mostrei dois exemplos de trabalho para explicar como a função do amigo se comporta em c++. Às vezes, a função de amigo pode ser muito útil em um ambiente de programação complexo. No entanto, um programador deve ser cauteloso ao usá -lo e comprometer seus recursos OOP.