Paso por valor y por referencia

Iniciado por RiCo9297, 15 Agosto 2016, 16:41 PM

0 Miembros y 1 Visitante están viendo este tema.

RiCo9297

Hola buenas me gustaría saber si alguien tiene unos apuntes o alguna manera de explicar cuando se usa el paso por valor o el paso por referencia ya que no lo comprendo demasiado bien, lo pido para c++ utilizando el & y no el *, muchas gracias.

class_OpenGL

El paso por referencia se utiliza cuando quieres cambiar el valor de la variable/objecto dentro de la función. Creo que con un ejemplo se entenderá mejor:

Código (cpp) [Seleccionar]
#include <iostream>

void modificarInt(int &variable);

int main() {
    int var = 0;
   
    modificarInt(var);
   
    std::cout << var << std::endl;
   
    return 0;
}

void modificarInt(int &variable) {
    variable = 5;
}


Salida en consola de este programa:
5

Si en este ejemplo no se pasara por referencia, la función no haría nada, porque simplemente le has pasado una copia del entero, mientras que cuando pasas una variable/objeto por referencia, es como si le dijeras a C++ que en la función'modificarInt' use la variable 'var' de la función main, por lo que cuando modificas la variable dentro de la función 'modificarInt', en realidad estás modificando la variable 'var'.

Se podría decir que la variable 'variable' de la función se refiere a la variable 'var' de la función main

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL