Foros del Web » Programación para mayores de 30 ;) » C/C++ »

duda corta funciones struct

Estas en el tema de duda corta funciones struct en el foro de C/C++ en Foros del Web. hola una pregunta, una funcion puede devolver una estructura??? (esta tiene datos) por ejemplo quiero un dato de una pila o cola, y bueno , ...
  #1 (permalink)  
Antiguo 22/06/2012, 09:28
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
duda corta funciones struct

hola una pregunta, una funcion puede devolver una estructura??? (esta tiene datos)

por ejemplo quiero un dato de una pila o cola, y bueno , esto se hace por funciones, la funcion que se llamaria "POP" en caso de ser pila. retira los datos, en caso de ser varios los datos, retiraria una estructura, existe esto ?? ,, el ejemplo que tengo SOLO retiro un entero... un numero... yo retiraria , cadenas y demas datos , ,...
  #2 (permalink)  
Antiguo 22/06/2012, 09:33
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 11 años, 11 meses
Puntos: 28
Respuesta: duda corta funciones struct

pon el ejemplo!!!!
crono
  #3 (permalink)  
Antiguo 22/06/2012, 09:51
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 4 meses
Puntos: 25
Respuesta: duda corta funciones struct

si se puede, aca te dejo un ejemplo:

Código C++:
Ver original
  1. struct ejemplo{
  2. int x;
  3. int y;
  4. } vEjemplo, *pEjemplo;
  5.  
  6. //la siguiente funcion devuelve un struct de tipo ejemplo
  7. ejemplo devuelve_struct(){
  8.  
  9. ejemplo Temp;
  10.  
  11. Temp.x=1;
  12. Temp.y=2;
  13.  
  14. return Temp;
  15. }
  16.  
  17. //la siguiente funcion devuelve un puntero que apunta a un struct de tipo ejemplo
  18.  
  19. ejemplo* devuelve_puntero_struct(){
  20.  
  21. ejemplo *Temp= new ejemplo();
  22.  
  23. Temp->x=1;
  24. Temp->y=2;
  25.  
  26. return Temp;
  27. }
  28.  
  29.  
  30. vEjemplo= devuelve_struct();
  31. pEjemplo= devuelve_puntero_struct();
  32.    
  33. cout<< vEjemplo.x<< "   "<< vEjemplo.y;
  34. cout<<endl;
  35. cout<< pEjemplo->x<< "   "<< pEjemplo->y;


fijate que cuando programas la funcion, el tipo de dato que esta tiene que retornar es del mismo struct que queres obtener, en el ejemplo anterior te mostre con variable y con puntero. Asi que para que puedas devolver un struct, este debe tener un nombre para saber como retornarlo en la funcion, no te sirve de nada declarar el struct como sigue si es que lo queres implementar en una funcion:

Código C++:
Ver original
  1. struct{
  2. int x;
  3. int y;
  4. } vEjemplo, *pEjemplo
  5.  
  6. //si bien lo anterior es valido, no sabes que tipo debe retornar la funcion

ahora, cuando lo implementas a una structura como un lista, una pila o una cola, tenes que asegurarte que retornar un puntero que apunte al mismo tipo de datos con el que estas trabajando. tambien tene cuidado de no desarmar la estructura con la que estas trabajando, es decir, actualizar los punteros por los que se accede en caso de ser necesario, actualizar los punteros que apuntan al puntero a retornar, y todas las cosas necesarias para no desarmar la estructura.

saludos

Etiquetas: corta, funcion, funciones, struct
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:32.