Passando argumentos por referência na função C ++

Passando argumentos por referência na função C ++

Uma função pode ser definida no código com argumento ou sem argumento. O valor do argumento pode ser passado por valor ou referência no argumento da função. Quando o valor do argumento da função é aprovado pela referência, a variável de argumento e a variável que passa o valor por referência a esse argumento, compartilhe o mesmo local na memória.

Portanto, o valor da variável será alterado se o valor da variável de argumento for alterado dentro da função. O símbolo '&' é usado no argumento da função para declarar o argumento por referência. As diferentes maneiras de passar o argumento por referência na função C ++ mostraram neste tutorial.

Exemplo 1: Passe um único argumento por referência

A maneira de passar um único argumento por referência a uma função mostrou no exemplo a seguir. Aqui, um valor de string é inicializado em uma variável chamada strval. Esta variável passou como o argumento da função denominada FunctionByReference ().

O argumento por variável de referência nomeado str foi usado no argumento da função. O valor da variável de referência será alterado após chamar esta função. O valor de strval é impresso antes e depois de chamar a função para verificar como a variável de referência funciona.

// inclui a biblioteca necessária
#incluir
usando namespace std;
// Declare a função com a chamada por argumento de referência
Void FunctionByReference (String & Str)

// modifica o valor de referência
str = "Eu gosto de programação C ++";

int main ()

// Inicialize uma variável de string
string strval = "eu gosto de programar";
// imprima o valor inicial da variável
cout << "The value of strVal before calling the function:" << strVal << '\n';
// Função de chamada com a variável string
FunctionByReference (strval);
// imprima o valor modificado da variável
cout << "The value of strVal after calling the function is:" << strVal << '\n';
retornar 0;

Saída:

A saída a seguir aparecerá após a execução do código acima. O valor do strval era 'eu gosto de programar' antes de chamar a função e o valor dessa variável é alterado para 'eu gosto de programação C ++' depois de chamar a função para passar o argumento por referência.

Exemplo 2: modifique o conteúdo da variável de referência com base na condição

O exemplo a seguir mostra a maneira de alterar o valor da variável de referência com base na condição específica. Aqui, a função denominada calcularGrade () levará o primeiro argumento por referência e o segundo argumento por valor.

O valor do primeiro argumento será alterado com base no valor aprovado pelo segundo argumento. Dois valores serão retirados do usuário e transmitidos para a função e o valor modificado da variável aprovado por referência será impresso após a execução do código.

/// inclui a biblioteca necessária
#incluir
usando namespace std;
/*
Declare a função com uma chamada por argumento de referência
e um argumento de chamada por valor para calcular a nota
e modificar a variável de referência
*/
Void CalcularGrade (String & Info, Int Marks)

if (marcas> = 80)
info = info + "tenho um+.";
caso contrário, se (marcas <80 && marks>= 75)
info = info + "tenho um.";
caso contrário, se (marcas <75 && marks>= 70)
info = info + "tenho um-.";
outro
info = "Nenhuma informação de classificação encontrada.";

int main ()

informação da string;
int as marcas;
// Receba entradas do usuário
cout << "Enter the student ID:" ;
CIN >> Informações;
cout << "Enter the obtained marks:" ;
CIN >> Marcas;
// Função de chamada com duas variáveis
CalcularGrade (informações, marcas);
// imprima o valor modificado da variável de referência
cout << info << '\n';
retornar 0;

Saída:

A saída a seguir aparecerá após a execução do código acima. A saída mostra que o valor da variável de referência é alterado de '784534' para '784534 obteve A+' para o valor de Marcos 84.

Exemplo 3: Passando vários argumentos por referência

O exemplo a seguir mostra a maneira de passar vários argumentos por valores em uma função e alterar os valores desses argumentos com base nos valores dos outros argumentos. Três entradas serão retiradas do usuário antes de chamar a função.

Aqui, o bônus (%) e as variáveis ​​totais serão aprovadas como argumentos por referência, e duas outras variáveis, salário e experiência serão passadas pelo valor na função denominada calculaSalarywithbonus quando será chamado. A função modificará os valores de bônus e variáveis ​​totais com base em outras variáveis.

// inclui bibliotecas necessárias
#incluir
#incluir
usando namespace std;
// Declare a função com a chamada por argumento de referência
Void calculaSalarywithbonus (int sal, int yr, flutuação e bônus, dupla e total)

// Defina o bônus com base na experiência
if (yr> = 5)
bônus = 0.10;
caso contrário, se (yr> = 2)
bônus = 0.07;
total = sal + sal*bônus;

int main ()

// Declare as variáveis ​​necessárias
bônus de flutuação = 0.05;
total duplo = 0.0;
salário int, experiência;
nome da string;
// Receba a entrada do usuário
cout << "Enter the employee name:" ;
getLine (CIN, nome);
cout << "Enter the salary:" ;
CIN >> salário;
cout << "Enter the years of experience:" ;
CIN >> experiência;
// chama a função para calcular o salário com base no bônus
Calcular o salário -combonus (salário, experiência, bônus, total);
// Imprima os detalhes do salário
cout << "Salary information with bonus: \n";
cout << "Name: " << name << "\n";
cout << "Salary: " << salary << "\n";
cout << "Experience: " << experience << "years" << "\n";
cout << "Bonus(%): " << bonus << "\n";
cout << "Salary with bonus: " << total << "\n";
retornar 0;

Saída:

A saída a seguir será exibida após a execução do código acima com base na entrada obtida do usuário. De acordo com a produção, 10 tomou como valor de experiência maior que 5. Então, o valor do bônus foi modificado para 0.10 e o valor do total foi contado com base no bônus.

Conclusão

O uso da aprovação do argumento por referência para a função C ++ foi explicado neste tutorial usando vários exemplos para ajudar os novos codificadores C ++ a usar esse recurso em seu código corretamente.