Pasar argumentos por referencia en la función C ++

Pasar argumentos por referencia en la función C ++

Una función se puede definir en el código con argumento o sin argumento. El valor del argumento puede pasar por valor o referencia en el argumento de la función. Cuando la referencia pasa el valor del argumento de la función, tanto la variable de argumento como la variable que pasa el valor por referencia a ese argumento, comparta la misma ubicación en la memoria.

Entonces, el valor de la variable se cambiará si el valor de la variable de argumento se cambia dentro de la función. El símbolo '&' se usa en el argumento de la función para declarar el argumento por referencia. Las diferentes formas de aprobar el argumento por referencia en la función C ++ se han mostrado en este tutorial.

Ejemplo-1: pasar un solo argumento por referencia

La forma de pasar un solo argumento por referencia a una función ha mostrado en el siguiente ejemplo. Aquí, un valor de cadena se inicializa en una variable llamada STRVAL. Esta variable ha pasado como argumento de la función nombrada FunctionByReference ().

La variable de argumento por referencia llamada STR se ha utilizado en el argumento de la función. El valor de la variable de referencia se cambiará después de llamar a esta función. El valor de STRVAL se imprime antes y después de llamar a la función para verificar cómo funciona la variable de referencia.

// Incluye la biblioteca necesaria
#incluir
usando el espacio de nombres STD;
// Declarar la función con el argumento de la llamada por referencia
nulo FunctionByReference (String & Str)

// modificar el valor de referencia
str = "me gusta la programación C ++";

int main ()

// Inicializar una variable de cadena
String strval = "Me gusta la programación";
// imprime el valor inicial de la variable
cout << "The value of strVal before calling the function:" << strVal << '\n';
// función de llamada con la variable de cadena
FunctionByReference (strval);
// imprime el valor modificado de la variable
cout << "The value of strVal after calling the function is:" << strVal << '\n';
regresar 0;

Producción:

La siguiente salida aparecerá después de ejecutar el código anterior. El valor del STRVAL fue 'me gusta la programación' antes de llamar a la función y el valor de esta variable se cambia a 'me gusta la programación C ++' después de llamar a la función para pasar el argumento por referencia.

Ejemplo-2: Modifique el contenido de la variable de referencia en función de la condición

El siguiente ejemplo muestra la forma de cambiar el valor de la variable de referencia en función de la condición específica. Aquí, la función llamada calculateGrade () tomará el primer argumento por referencia y el segundo argumento por valor.

El valor del primer argumento se cambiará en función del valor aprobado por el segundo argumento. Se tomarán dos valores del usuario y se pasarán a la función y el valor modificado de la variable aprobada por referencia se imprimirá después de ejecutar el código.

/// Incluya la biblioteca necesaria
#incluir
usando el espacio de nombres STD;
/*
Declarar la función con una llamada por argumento de referencia
y un argumento de llamada por valor para calcular la calificación
y modificar la variable de referencia
*/
void calculateGrade (string e info, int marcas)

if (marcas> = 80)
info = info + "tengo un+.";
más si (Marcas <80 && marks>= 75)
info = info + "tengo un.";
más si (Marcas <75 && marks>= 70)
info = info + "tengo un-.";
demás
info = "No se encontró información de calificación.";

int main ()

Información de cadena;
int marcas;
// tomar entradas del usuario
cout << "Enter the student ID:" ;
cin >> información;
cout << "Enter the obtained marks:" ;
Cin >> Marcas;
// Función de llamada con dos variables
CalculateGrade (información, marcas);
// Imprima el valor modificado de la variable de referencia
cout << info << '\n';
regresar 0;

Producción:

La siguiente salida aparecerá después de ejecutar el código anterior. La salida muestra que el valor de la variable de referencia cambia de '784534' a '784534 obtuvo A+' para el valor de Mark 84.

Ejemplo-3: pasar múltiples argumentos por referencia

El siguiente ejemplo muestra la forma de pasar múltiples argumentos por valores en una función y cambiar los valores de estos argumentos basados ​​en los valores de los otros argumentos. Se tomarán tres entradas del usuario antes de llamar a la función.

Aquí, la bonificación (%) y las variables totales se aprobarán como argumentos por referencia, y otras dos variables, salario y experiencia se transmitirán por valor en la función nombrada calculadorawithbonus cuando se llamará. La función modificará los valores de bonificación y variables totales basadas en otras variables.

// Incluye las bibliotecas necesarias
#incluir
#incluir
usando el espacio de nombres STD;
// Declarar la función con el argumento de la llamada por referencia
void calculadoralariowithbonus (int sal, int Yr, float & bonus, doble y total)

// Establecer el bono en función de la experiencia
if (yr> = 5)
Bonificación = 0.10;
más si (yr> = 2)
Bonificación = 0.07;
total = sal + sal*bonus;

int main ()

// Declarar las variables necesarias
bono de flotación = 0.05;
Doble total = 0.0;
int salario, experiencia;
nombre de cadena;
// Tome la entrada del usuario
cout << "Enter the employee name:" ;
GetLine (CIN, nombre);
cout << "Enter the salary:" ;
cin >> salario;
cout << "Enter the years of experience:" ;
Cin >> experiencia;
// llame a la función para calcular el salario en función del bono
Calculadoralariowithbonus (salario, experiencia, bonificación, total);
// Imprima los detalles salariales
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";
regresar 0;

Producción:

La siguiente salida aparecerá después de ejecutar el código anterior en función de la entrada tomada del usuario. Según la salida, 10 ha tomado como el valor de experiencia que es mayor que 5. Entonces, el valor de la bonificación se ha modificado a 0.10 y el valor del total se ha contado en función del bono.

Conclusión

El uso de aprobar el argumento por referencia a la función C ++ se ha explicado en este tutorial utilizando varios ejemplos para ayudar a los nuevos codificadores C ++ a usar esta función en su código correctamente.