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 originaltemplate <typename datonodo_t, typename datoarista_t>
void Grafo<datonodo_t,datoarista_t>::recorrerHijos(pNodo& padre,void (*pfunc)(pArista& a))
{
if (padre->adyacente!=0)
{
pArista A=padre->adyacente;
while (A->siguiente!=0)
{
pfunc(A);
A=A->siguiente;
}
pfunc(A);
}
}
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 originalvoid MostrarHijos()
{
G.recorrerHijos(padre, imprimir);
}
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?)