On 10/16/07, Javier Persico <[EMAIL PROTECTED]> wrote:
> 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
No podés usar una instancia con un forward porque el compilador no
conoce la clase en ese momento, tenés que usar un puntero o
referencia... algo así:
void agregarArco(Arco &nuevoArco)
y tampoco te va a compilar:
std::list<Arco> lArcos;
Saludos
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion