• Sábado 9 de Noviembre de 2024, 03:38

Autor Tema:  Problema Con Templates + Funciones Recursivas  (Leído 1027 veces)

Betito

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Problema Con Templates + Funciones Recursivas
« en: Domingo 24 de Octubre de 2004, 20:21 »
0
Bueno, la verdad no se si sea ese el problema o alguna otra cosa, pero encuentro muy posible que esa sea la causa.

Verán, necesito hacer una implementación de arbol usando templates (template <class t>, ya saben...).  y pues todo parece ir bien hasta que intento recorrerlo para cualquier cosa (imprimirlo, por ejemplo).  Aqui viene la funcion:


 
Código: Text
  1.  
  2. template&#60;class T&#62;
  3. void imprimeArbol(arbol&#60;T&#62; a, nodoA&#60;T&#62; * inicio)
  4. {
  5.     T temp;
  6.   nodoA&#60;T&#62; * temp1;
  7.     a.devolver(&temp, inicio);
  8.     cout&#60;&#60;temp&#60;&#60;endl;
  9.   if (a.tieneHijo(inicio))
  10.   {
  11.     temp1=a.irHijo(inicio);
  12.     imprimeArbol (a, temp1);
  13.   }
  14.   if (a.tieneHerm(inicio))
  15.   {
  16.     temp1= a.irHerm(inicio);
  17.     imprimeArbol (a, temp1);
  18.   }
  19.  
  20. }
  21.  
  22.  

ninguna de las funciones que aqui uso (tieneHijo, tieneHermano, devolver...) afecta al arbol - es decir, cambiar alguno de sus valores -, pero aún asi esta función me causa error en tiempo de ejecución y he notado que lo que ocurre es que las referencias a los demás nodos son "borradas" cuando se regresa a una llamada anterior de imprimeArbol.

Tal vez sea necesario postear el resto de la implementación, si es así diganme. En fin, cualquier ayuda es bienvenida

Betito

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Problema Con Templates + Funciones Recursivas
« Respuesta #1 en: Domingo 24 de Octubre de 2004, 21:43 »
0
Jeje, ya encontré la falla...  

Resulta que como estaba pasando mi objeto arbol por valor, se destruía al salir de la función, borrando a todos sus nodos...     en fin,  la solución fue pasarlo como apuntador