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

Responder a