Autor
|
Tema: C/C++ Dudas parámetros (Leído 12,593 veces)
|
h0oke
Desconectado
Mensajes: 2.059
Coder ~
|
He visto que en C los pasos por referencia se hacen de la siguiente manera: int funcion(int *a, int *b);
En C++, he visto que se puede utilizar directamente: int funcion(int &a, int &b);
En C++ es optativo utilizar cualquiera de las dos? Es decir, queda a disposición de la comodidad del programador?
|
|
|
En línea
|
|
|
|
.:BlackCoder:.
Desconectado
Mensajes: 388
Cada dia C++!!
|
Creo que no son la misma cosa.. para mi no lo son... Yo se un poco de C++ y pes prefiero usar las referencias... Por que? Bueno para empezar por comodad porq es mejor hacer... int funcion(int &a, int &b){ return a+b;}
que... int funcion(int *a, int *b){ return *a+*b;}
Ademas... eso depende de que quieras hacer con la funcion... recuerda que lo punteros solo deben utilizarse (segun yo ) para memoria dinamica, si no no tendria sentido... para eso estan los arrays y las referencias... Espero estar en lo correcto, y haberte ayudado... Saludos...
|
|
|
En línea
|
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja
|
|
|
h0oke
Desconectado
Mensajes: 2.059
Coder ~
|
Exacto, yo también lo veo desde el punto de vista: "Comodidad"... En cuanto a la utilización de punteros en memoria dinámica también lo veo correcto. Pero bien, no sé cuál opción de las primeras es la preferible, tal vez haya algún ingeniero en software que quiera dar su opinión.
|
|
|
En línea
|
|
|
|
^Winder^
Desconectado
Mensajes: 2.776
El mundo no es tuyo, es de todos.
|
Lo primero son un paso de punteros y lo segundo son un paso de referencias a valores (paso por referencia), no es lo mismo, de hecho se pueden combinar las dos, puedes pasar punteros por referencia, así si por ejemplo creas un puntero a algún objeto y lo pasas por referencia puedes cambiar dentro de la función el objeto al que apunta, si pasaras solo el puntero no podrías No sé si se me entiende.
|
|
|
En línea
|
Yo apoyo la esperanza de Caylees. Frenemos la Leucemia:www.cayleeshope.comLibertad conquistada. (Justicia )
|
|
|
h0oke
Desconectado
Mensajes: 2.059
Coder ~
|
No he podido entender. En C teóricamente el paso por referencia se hace con punteros, según había entendido, por ejemplo: void swap(int *a, int *b) { int aux; aux = *a; *a = *b; *b = aux; }
En C++, creo que sería de la siguiente forma: void swap(int &a, int &b) /* Tambien creo que se pueden emular la función con punteros */ /* Esa es mi duda, ¿cuál es la opción correcta? */ { int aux; aux = a; a = b; b = aux; }
Aunque también, sabía que se podían pasar punteros por referencia sin ningún problema.
|
|
|
En línea
|
|
|
|
.:BlackCoder:.
Desconectado
Mensajes: 388
Cada dia C++!!
|
por ejemplo creas un puntero a algún objeto y lo pasas por referencia puedes cambiar dentro de la función el objeto al que apunta, si pasaras solo el puntero no podrías Como que no?... yo puedo modificar con un puntero los objetos apuntados... Asi sea en una funcion... La unica forma de evitarlo es pasandolo constante (con la palabra reservada const) de resto si se puede... Si estoy errado alguien que me lo aclare... Saludos...
|
|
|
En línea
|
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja
|
|
|
h0oke
Desconectado
Mensajes: 2.059
Coder ~
|
Creo que no estás errado, por eso puse el ejemplo citado.
|
|
|
En línea
|
|
|
|
|
h0oke
Desconectado
Mensajes: 2.059
Coder ~
|
y tu crees que a mi me importa? El foro está hecho para compartir opiniones, sean erradas o no... de todas maneras siempre se termina aprendiendo...
|
|
|
En línea
|
|
|
|
.:BlackCoder:.
Desconectado
Mensajes: 388
Cada dia C++!!
|
No se si te importara pero me parecio comico el comentario: Pero bien, no sé cuál opción de las primeras es la preferible, tal vez haya algún ingeniero en software que quiera dar su opinión.
Debe ser por el fastidio que tengo... Ando haciendole unas diapositivas a una amiga...
|
|
|
En línea
|
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja
|
|
|
|
|