Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/08/2013, 20:30
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: duda que no veo la diferencia entre devolver int*& e int*

Pero claro que existe una diferencia.

int& es azúcar sintáctica para manejar punteros.

Y como tal claro que existe una diferencia entre int* e int*&

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void f1(int *f) {
  6.     int a = 10;
  7.     f = &a;
  8.     cout << "f1 " << f << endl;
  9. }
  10.  
  11. void f2(int *&f) {
  12.     int a = 10;
  13.     f = &a;
  14.     cout << "f2 " << f << endl;
  15. }
  16.  
  17. int main() {
  18.  
  19.     int f = 10;
  20.     int *p = &f;
  21.    
  22.     cout << "1 " << p << endl;
  23.     f1(p);
  24.     cout << "1 " << p << endl;
  25.  
  26.     cout << "2 " << p << endl;
  27.     f2(p);
  28.     cout << "2 " << p << endl;
  29.    
  30.     return 0;
  31. }

Mira como la primer función `f1` pasa el valor por copia. Mientras la segunda función `f2` pasa el puntero por referencia.

En cualquiera de los 2 casos ten cuidado.