Aprovechando que me he equivocado con la Vista Previa y le he dado a Enviar sigo en otro mensaje y así se verá menos denso el primero.
El caso es que con lo puesto arriba, puedo manejar mi grafo así:
Código C++:
Ver original#include <iostream>
#include "Grafo.h"
using namespace std;
typedef char datonodo_t;
typedef int datoarista_t;
typedef nodo<datonodo_t,datoarista_t>* pNodo;
typedef arista<datoarista_t,datonodo_t>* pArista;
typedef nodo<datonodo_t,datoarista_t> t_nodo;
typedef arista<datoarista_t,datonodo_t> t_arista;
int main()
{
Grafo<datonodo_t,datoarista_t>g;
pNodo A = new t_nodo('A');
pNodo B = new t_nodo('B');
pNodo C = new t_nodo('C');
pArista A_A=0;
pArista A_B = new t_arista(10);
pArista A_C = new t_arista(5);
g.InsertarHijo(A,A,A_A,A_A);
g.InsertarHijo(A,B,A_A,A_B);
g.InsertarHijo(A,C,A_A,A_C);
return 0;
}
Por ahora vamos bien...sólo he tenido que volver a redefinir los tipos (supongo que eso se puede y se debe hacer para que no hay que andar redefiniendo tipos en cada clase o ficheros....
Pero ahora quiero recorrer el grafo, para ello tengo esta función en la clase Grafo:
Código C++:
Ver originalvoid recorrerGrafo(pNodo& inicio, TratarArista& tratamiento);//TratarArista es el objeto functor
Entonces (por fin mi duda!!!) estoy reordenando el código de los functores, y lo primero que hago es volver a definir tipos:
Código C++:
Ver original#ifndef FUNCTORES_H
#define FUNCTORES_H
#include "Grafo.h"
//redefinicion de tipos
typedef char datonodo_t;
typedef int datoarista_t;
typedef nodo<datonodo_t,datoarista_t>* pNodo;
typedef arista<datoarista_t,datonodo_t>* pArista;
typedef nodo<datonodo_t,datoarista_t> t_nodo;
typedef arista<datoarista_t,datonodo_t> t_arista;
struct TratarArista
{ //miembros:
....................
Y aquí es cuando me tira el error, ya que me dice que ni nodo ni arista son tipos
Y las preguntas:
1.- Cómo hago para que me reconozca los tipos. En el main.cpp hago lo mismo y no me da problema
2.- Cómo hago para que esta definición de tipos no tenga que declararla en cada clase o en cada fichero?