O que é C++? | Função amigo em C++

O que é C++? | Função amigo em C++

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.

LER  Principais gravadores de tela gratuitos com gerenciador de vídeo 2023

 

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++:

  1. 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.

  1. 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.

  1. 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.

  1. 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.

LER  Os principais participantes na criação de sites

Desvantagens de usar funções de amigo em C++:

  1. 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.

  1. 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.

  1. 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.

  1. 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.

Deixe uma resposta

seu endereço de e-mail não será publicado. Campos obrigatórios são marcados *