Soy nuevo en el foro, la verdad es que hace años que no escribo en un foro pero haré lo que pueda por colaborar en esta comunidad desde hoy.
Tras años sin programar nada serio en C++, ahora tengo que volver a este lenguaje y tengo un quebradero de cabeza que no consigo solucionar y tampoco entiendo por qué se da.
Tengo 3 clases, con la siguiente definición:
node.h:
Código:
transform.h#ifndef NODE_H #define NODE_H namespace rce { namespace sg { class node { private: node * _parent; std::map<std::string, node *> _childs; public: node(); ~node(); void addChild(std::string name, node * child); node * getChild(std::string name); void setParent(node * parent); virtual void traverse(){}; }; }; }; #endif
Código:
geomnode.h#ifndef TRANSFORM_NODE_H #define TRANSFORM_NODE_H namespace rce { namespace sg { class transform : public node { public: transform(); ~transform(); void traverse(); }; }; }; #endif
Código:
Estas tres clases se incluyen en siguiente fichero:#ifndef GEOMNODE_H #define GEOMNODE_H namespace rce { namespace sg { class geomnode : public node { public: geomnode(); void traverse(); }; }; }; #endif
graph.h
Código:
Pues bien, a la hora de compilar, me devuelve el siguiente error:#infdef GRAPH_H #define GRAPH_H #include "node.h" #include "transformnode.h" #include "geomnode.h" ...
error C2504: 'node': clase base sin definir | geomnode.h
Sin embargo, la clase transform no da ningun problema.
¿Alguien que arroje algo de luz sobre mi problema?
Un saludo,
Apu de Beaumarchais