Diferença entre Função Amigo e Classe Amigo
Contente
A função Friend e friend class são as técnicas usadas para acessar os membros privados de uma classe usando a palavra-chave friend. A diferença comum entre a função de amigo e a classe de amigo é que, quando a função de amigo é usada, os membros da classe privada podem ser acessados, mas na classe de amigo, apenas os nomes da classe de amigo são acessados, e não os membros privados da classe.
o recurso de amigo se usado por função ou classe pode produzir um impacto negativo na estrutura orientada a objetos, pois enfraquece a encapsulamento o que é contra Orientado a Objeto paradigma. Esta é a razão pela qual o recurso de amigo deve ser usado com sabedoria, caso contrário, poderia pausa a ocultação de dados do código.
Esse recurso de amigo não é comutativo e nem transitivo. X é amigo de Y não infere que Y também é amigo de X. Se X é amigo de Y e Y é amigo de Z, não implica que X seja amigo de Z.
-
- Gráfico de comparação
- Definição
- Principais diferenças
- Conclusão
Gráfico de comparação
Base para comparação | Função Amigo | Classe Amigo |
---|---|---|
Basic | É uma função usada com uma palavra-chave friend para conceder acesso a uma função não membro aos membros privados de uma classe. | É uma classe usada com uma palavra-chave friend para acessar os membros privados de outra classe. |
Declaração de encaminhamento | Deve ser usado. | Não é obrigatório. |
Usar | Uma função de amigo pode ser usada em algumas situações de sobrecarga do operador. | Uma classe de amigo pode ser usada quando uma classe é criada na parte superior de outra classe. |
Definição da Função Amigo
o função de amigo é usado para acessar os membros privados e protegidos de uma classe, permitindo que a função não membro obtenha acesso. Nesse tipo de função, uma palavra-chave friend é usada antes do nome da função no momento da declaração. Existem algumas condições restritivas aplicadas à função de amigo. A primeira condição é que a função de amigo não seja herdada por uma classe filho. A segunda condição é que o especificador de classe de armazenamento pode não estar presente na função friend, o que significa que não pode ser declarado como estático e externo.
A função friend não é chamada com um objeto de chamada da classe. Os exemplos da função de amigo são: uma função global, função de membro de uma classe, modelo de função pode ser uma função de amigo. Vamos entender isso com a ajuda de um exemplo.
#incluir Uma função de amigo é necessária quando uma função precisa acessar duas ou mais classes independentes, membros internos. Por outro lado, uma classe de amigo é necessária quando uma classe exige acesso aos membros de outra classe. Quando uma função de membro múltiplo precisa ser amiga dessa função, nesse caso, é melhor usar a classe de amigo.
Conclusão