Trabalhar com C ++ não é uma tarefa difícil se você já tem experiência em C, já que ambos compartilham muitos conceitos um com o outro. Mas, C ++ tem alguns conceitos que não fazem parte do paradigma C. Neste artigo Call by Reference in C ++, falaremos sobre um desses conceitos que são as variáveis de referência e seus aplicativos na seguinte ordem:
- Variáveis de Referência
- Chamada por valor e chamada por referência em C ++
- Retornar por referência em C ++
- Chamada por Referência Vs Ponteiro
Variáveis de Referência
C ++ nos dá um novo tipo de variável, ou seja, uma variável de referência. Podemos pensar em uma variável de referência como um apelido para nossa variável original. Essa é a funcionalidade exata de uma variável de referência em uma linha.
Por exemplo, se seu nome é Harrison, mas está em casa, seus familiares o chamam de Harry. Agora vamos ver alguns detalhes das variáveis de referência. A declaração e o uso deste tipo de variável são diferentes das variáveis usuais que usamos, mas muito semelhantes às variáveis de ponteiro.
Sintaxe:
int Hello = 1 int * ptr int & World = Hello
Quando criamos uma variável ‘Hello’ contendo o valor ‘1’, um segmento de memória é usado para danificar o valor ‘1’, o nome deste segmento será ‘Hello’ e o endereço deste segmento será algum valor hexadecimal, por exemplo0x64. quando escrevemosint& World = Olá
A variável ‘World’ é criada apontando para o mesmo local de memória.
Incluir a linha World ++ fará alterações no endereço 0x64, o que significa que o valor da variável ‘Hello’ também mudará. Alguns podem apontar que como são variáveis de referência diferentes das variáveis de ponteiro que iremos discutir na última parte deste artigo.
Chamada por valor e chamada por referência em C ++
Chamada por valor: Chamada por valor é um método amplamente utilizado. Na maioria das vezes, você usará a abordagem chamada por valor, pois não deseja que seus valores originais das variáveis sejam alterados. Portanto, usamos o método call by value para chamar uma função, apenas os valores das variáveis são passados. Isso é obtido criando variáveis fictícias na memória.
#include usando namespace std void add (int a, int b) {a = a + 10 b = b + 10 cout<<'Value of a = '<Pela imagem acima, podemos ver que assim que chamamos a função add (), os valores das variáveis xey são copiados para as variáveis a e b. A e b são variáveis dummy.
Chamada por referência: Agora, vamos falar sobre o método de chamada por referência. Neste método, variáveis dummy separadas não são criadas, uma referência de uma variável já existente é passada para o método. Esta referência aponta para o mesmo local da memória, portanto, cópias separadas não são feitas na memória. O ponto importante a se notar aqui é que as alterações feitas nas variáveis de referência são refletidas na variável dummy.
#include usando namespace std void add (int & a, int & b) {a = a + 10 b = b + 10 cout<<'Value of a = '< int & min (int & a, int & b) {if (aComo podemos ver que a função acima parece diferente em comparação com as funções normais, uma vez que o tipo de retorno é ‘int &’. Esta função retorna uma referência a a ou b dependendo da condição. O ponto importante a notar aqui é que os valoresnão são devolvidos.
Se chamarmos a função min (x, y) = 10. 10 será atribuído ax se for mínimo ou ay se y for mínimo.
Chamada por Referência Vs Ponteiro
Em todos os nossos exemplos que vimos, sempre atribuímos um valor à variável de referência que criamos, já que as variáveis de referência não podem ser NULL, enquanto as variáveis de ponteiro podem ser NULL e podem causar erros inesperados.
Variáveis de referência não podem ser reatribuídas enquanto variáveis de ponteiro podem apontar para alguma outra variável posteriormente no programa.
Uma variável de ponteiro contém o valor do endereço de uma determinada variável, enquanto o endereço da variável de referência é o mesmo da variável à qual está se referindo.
Com isso, chegamos ao fim deste artigo Chamada por referência em C ++. Espero que você tenha entendido as várias implementações da chamada por valor e referência e como ambos diferem.
o que é jframe em javaSe você deseja saber mais, confira o pela Edureka, uma empresa de aprendizagem online confiável. O curso de certificação e treinamento em Java J2EE e SOA da Edureka foi projetado para treiná-lo tanto para conceitos básicos quanto avançados de Java, juntamente com várias estruturas Java como Hibernate e Spring.
Tem alguma questão para nós? Mencione isso na seção de comentários deste blog e entraremos em contato com você o mais breve possível.