A função de amigo em C++ pode acessar os membros privados e protegidos de uma classe, apesar de ser definido fora da classe. em uma aula, funções de amigo são declaradas usando a palavra-chave “amigo,” mas eles não são membros da classe.
Discutiremos a função de amigo em C++ neste artigo
Introdução
Em C++, uma função de amigo é uma função que é definida fora de uma classe, mas pode acessar os membros privados e protegidos da classe. Dentro da definição de classe, a palavra-chave “amigo” é usado para declarar a função como amiga da classe.
Funções Friend não são membros da classe, mas eles podem interagir com ele como funções de membro. O objetivo dessas funções é permitir que funções externas acessem os dados internos de uma classe sem expor esses dados ao público. No entanto, é importante usar as funções de amigo com cautela, pois elas podem fazer com que o encapsulamento da classe seja quebrado, resultando em um acoplamento mais forte entre a classe e a função externa.
C++
C++ é uma linguagem de programação poderosa que é amplamente usada em uma variedade de aplicativos, incluindo sistemas operacionais, navegadores da web, e videogames. Como uma extensão da linguagem de programação C, ele adiciona recursos como programação orientada a objetos, modelos, e tratamento de exceções.
Exemplo
#incluir <iostream>
usando namespace std;
int principal() {
largura interna, altura.
cout << “Insira a largura e a altura do retângulo: “;
cin >> largura >> altura;
área int = largura * altura;
cout << “A área do retângulo é ” << área << fim;
retornar 0;
}
O que é a função Friend em C++?
Em C++, uma função de amigo é uma função que é definida fora de uma classe, mas pode acessar os membros privados e protegidos da classe. Usando a palavra-chave “amigo” dentro da definição da classe, a função é declarada como amiga da classe.
Funções de amigo não são funções de membro da classe, mas eles podem interagir de forma semelhante com a classe para funções de membro.
Exemplo
#incluir <iostream>
classe A {
privado:
int x;
público:
UMA(int x) : X(X) {}
// Declare a função 'amigo’ da classe A
amigo void printX(UMA& uma);
};
// A função 'imprimirX’ é amigo da classe A
void printX(UMA& uma) {
std::cout << machado << std::fim;
}
int principal() {
um um(10);
// A função 'imprimirX’ pode acessar o membro privado 'x’ da classe A
printX(uma); // Saídas: 10
retornar 0;
}
Neste exemplo, a função printX é amiga da classe A. Isso significa que a função printX tem acesso ao membro privado x da classe A. A função printX pode então acessar e imprimir o valor de x para um determinado objeto da classe A.
Vantagens de usar funções de amigo em C++:
-
Permite acesso a membros privados e protegidos de uma classe:
Em C++, uma função de amigo tem a vantagem de permitir acesso aos membros privados e protegidos de uma classe, o que não é possível com funções de membro normais. Quando é necessário realizar operações nos dados privados de uma classe, mas não é apropriado tornar os dados públicos, esta técnica pode ser útil.
-
Melhora a legibilidade do código:
Ao permitir que uma função de amigo acesse uma classe’ dados privados, é possível mover operações complexas ou algoritmos que operam nos dados privados da classe para a função de amigo. É possível melhorar a legibilidade do código separando os detalhes de implementação da lógica principal da classe dessa maneira.
-
Permite a separação de interesses:
As vezes, pode ser necessário realizar operações nos dados privados de uma classe que não esteja diretamente relacionada à sua funcionalidade principal. O uso de uma função de amigo permite que essas preocupações sejam separadas em funções separadas, o que melhora a modularidade e manutenção do código.
-
Pode ser usado para implementar a sobrecarga do operador
O uso de funções de amigo pode ser usado para implementar sobrecarga de operador em C++. Isso permite que o programador defina um comportamento personalizado para operadores como +, -, *, e outros quando são usados em conjunto com objetos da mesma classe.
Desvantagens de usar funções de amigo em C++:
-
Quebra o encapsulamento:
As funções de amigo C++ quebram o encapsulamento de classe, o que é uma grande desvantagem. O encapsulamento é uma maneira de agrupar dados e funções em uma única unidade (uma aula). Uma função de amigo pode acessar os dados privados de uma classe, o que compromete seu encapsulamento.
-
Pode levar à complexidade do código:
O uso excessivo de funções de amigo pode resultar em complexidade do código e torná-lo mais difícil de entender e manter.
-
Pode levar a problemas de segurança:
É possível introduzir vulnerabilidades de segurança no código permitindo que uma função de amigo acesse os dados privados de uma classe.
-
Isso pode levar a problemas de manutenção:
Uma função de amigo pode potencialmente quebrar o código da classe na qual é declarada como amiga se for modificada ou removida. Isso pode levar a problemas de manutenção e dificultar a atualização e modificação do código.
Conclusão
A linguagem de programação C++ foi desenvolvida no início dos anos 80 e é uma linguagem de alto nível, linguagem de programação de uso geral. A linguagem estende a linguagem de programação C e suporta programação orientada a objetos, processual, e paradigmas de programação genéricos. A linguagem de programação C++ é amplamente utilizada em uma variedade de aplicações, incluindo sistemas operacionais, navegadores da web, e videogames.
As funções de amigo C++ são funções definidas fora das classes, mas podem acessar os membros privados e protegidos da classe em que são declaradas. Uma função de amigo pode ser útil em certas situações em que é necessário executar operações nos dados privados de uma classe, mas não é apropriado tornar os dados públicos. Contudo, funções de amigo também podem criar complexidade de código e problemas de segurança, bem como comprometer o encapsulamento da classe em que são declarados.