Buenos Dias!.
Estoy armando un tp en C++ que usa un grafo (la clase Grafo es un
template) y que tiene una lista de vertices (la clase Vertice es tambien
un template).
Cada Vertice tiene un Arco (Arco no es template) y cada arco un puntero
a un vertice.
Esta es mi clase Vertice:
1 #include "Arco.h"
2
3 class Arco; //fordward declaration
4 template <class tContVertice> class Vertice
5 {
6 private:
7 int idVertice;
8 std::list<Arco> lArcos;
9 tContVertice *tEquipo;
10 public:
11 Vertice(){};
12 void agregarArco(Arco nuevoArco){
13 this->lArcos.push_back(nuevoArco);
14 };
15 };
Me devuelve los siguiente errores:
linea 9: error: forward declaration of ‘struct Arco’
linea 12: ‘nuevoArco’ has incomplete type
Arco es de la siguiente forma y no da errores:
#include "Vertice.h"
template <class tContVertice> class Vertice;
class Arco
{
private:
int idArco;
tArco tipoArco;
int iPesoArco;
Vertice<Equipo> *vLlegada;
public:
Arco();
inline void setVertice(Vertice<Equipo> *v){this->vLlegada = v;};
inline Vertice<Equipo> *getVertice(){return this->vLlegada;};
virtual ~Arco();
};
Les comento que mi clase Vertice recientemente se convirtio en template
y no tenia problemas con el fordward declaration.
¿Alguien q sepa de que puede tratarse y como solucionarlo?.
Saludos!
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion