Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/06/2012, 09:51
starfix
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 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