Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/02/2014, 14:06
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Usar un método que tiene otro método como argumento

Gracias por responder.

Efectivamente, de tantas vueltas que le he dado a la función, lo que he puesto no cuadraba:

Realmente es así:
Código C++:
Ver original
  1. template <typename datonodo_t, typename datoarista_t>
  2.     void Grafo<datonodo_t,datoarista_t>::recorrerHijos(pNodo& padre,void (*pfunc)(pArista& a))
  3.     {
  4.         if (padre->adyacente!=0)
  5.             {
  6.                 pArista A=padre->adyacente;
  7.                  while (A->siguiente!=0)
  8.                     {
  9.                         pfunc(A);
  10.                         A=A->siguiente;
  11.                     }
  12.                 pfunc(A);
  13.             }
  14.     }

También había probado a declarar la función fuera de la clase, pero si no maneja datos del grafo va bien, pero si los maneja no va.

Efectivamente, en principio la idea es que la clase que maneja al grafo y a los datos de los nodos y aristas, tenga el método imprimir.
Pero claro, entonces MostrarHijos() es un método de la clase que llama a otro método de la misma clase.
El cuerpo del método
Código C++:
Ver original
  1. void MostrarHijos()
  2.     {
  3.         G.recorrerHijos(padre, imprimir);
  4.     }

tiene un objeto G y un método recorrerHijos() de la clase Grafo, y un método -imprimir()-de la misma clase que la propia función que lo usa -MostrarHijos()-.

(Por cierto, que veo que tengo mal el título, puesto que el método "padre" no es que tenga a otro método de la misma clase como argumento, sino en el cuerpo del mismo)

Probaré lo de static...pero realmente me siento perdido, porque no sé cual es realmente el problema, o la lógica del problema.

Gracias!

(por cierto...como se edita el título del post?)

Última edición por dehm; 03/02/2014 a las 14:13