Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/01/2013, 15:20
ShotoReaper
 
Fecha de Ingreso: septiembre-2012
Mensajes: 38
Antigüedad: 11 años, 8 meses
Puntos: 0
error: forward declaration of 'class Foo' en template

Buenas!

Tengo el siguiente codigo:

Código:
#ifndef GECONTENTMANAGER_H
#define GECONTENTMANAGER_H

#include <string>
#include <typeinfo>
#include <map>
#include <sstream>
#include <iostream>
#include "object.hpp"

class Engine;
class PhysicPlane;

class Mesh;
class Shader;
class Texture;
class GEContentManager
{
    public:
        GEContentManager();
        Engine* eng;
        std::string rootDirectory;

        // Funcion que carga cualquier tipo de archivo a partir de una ruta y un T.
        // Funcion que carga un archivo a partir del rootDirectory + filename. Por ejemplo 'C:\\Data\' + 'cube.obj'
        template <class T> T* Load(std::string filename)
        {
            std::cout<<eng->pl<<std::endl;
            [...]
        }
Error:

error: invalid use of incomplete type 'class Engine'
error: forward declaration of 'class Engine'


Lo que intento es acceder a la variable pl, que es un objeto PhysicPlane, a traves de la variable eng, de clase Engine. El problema es que me da error si pongo eng->pl, y no tengo ni idea de porque, ya que tengo las clases declaradas arriba.
Si simplemente pongo eng, no recibo ningún error en el programa.