Advertisement
Guest User

Untitled

a guest
Jul 12th, 2013
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. //There are a ton of compile-errors when I leave out the forward declarations like:
  2. //syntax error :indentifier Component
  3. //xe::Component undeclared identifier
  4. //std::unique_ptr Component is not a valid template type argument for parameter '_Ty'
  5.  
  6.  
  7. //Entity.h
  8. #pragma once
  9. #include<memory>
  10.  
  11. //class Component;
  12. namespace xe
  13. {
  14. class Entity
  15. {
  16. public :
  17.   Entity(unsigned int);
  18.   std::list<std::unique_ptr<Component>> m_components;
  19.   void add_component(Component&);
  20. private :
  21.   unsigned int m_id;
  22. };
  23. }
  24.  
  25. //Entity.cpp
  26. #include "Entity.h"
  27.  
  28. xe::Entity(unsigned int id)
  29. {
  30.   m_id = id;
  31. }
  32. void xe::Entity::add_component(xe::Component& comp)
  33. {
  34.   m_components.push_back(std::unique_ptr<Component>(&component));
  35. }
  36.  
  37. //Component.h
  38. #pragma once
  39. #include "Entity.h"
  40. //class Entity;
  41. namespace xe
  42. {
  43. class Component
  44. {
  45. public :
  46.   void set_parent(xe::Entity&);
  47.  
  48. private :
  49.   xe::Entity* m_parent;
  50. };
  51. }
  52.  
  53. //Component.cpp
  54. #include "Component.h"
  55. xe::Component::set_parent(Entity& parent)
  56. {
  57.   m_parent = &parent;
  58. }
  59.  
  60. //main.cpp
  61. int main()
  62. {
  63.   Entity entity(1);
  64.   Component comp;
  65.   entity.add_component(comp);
  66.   comp.set_parent(entity);//This line causes the error  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement