C ++ Cycling包括(三个类,两个虚拟)

时间:2016-05-02 15:10:16

标签: c++ include dependencies abstract

我不知道,如何在我的项目中声明一些类,包括骑自行车。

(地图 - >对象 - > Object_Manager - >地图 - > ...)

我发现三个班级没什么(有用),并为两个班级尝试了一些可能性(许多形式的前瞻性声明) - 没有成功......

这是我的课程设计(简化形式):

Map.h

//some other includes
#include "Object.h"

#ifndef Map_H
#define Map_H

class Map{
   public: 
     Map();
     virtual ~Map();
     void move_object(Object* object, int x, int y); 
     // some other functions and members, that should be usable for and with Objects
}


Object.h

#include "Object_Manager.h"

#ifndef Object_H
#define Object_H

class Object { 
   public:  
      Object();     
      virtual ~Object();
      void interact_with(Object* object); 
      //some other stuff

   protected: 
      Object_Manager* object_manager;  
}


Object_Manager.h

#include "Map.h"

class Object_Manager{
   public: 
      Object_Manager(); 
      ~Object_Manager(); 

      Map* map; 

      //some other stuff
}



Map.h(和它的子节点)正在使用.cpp中的Objects和Object.h的子节点正在使用Object_Manager.h中的Map * map - 如果这很重要。

使用此代码,我得到许多编译器错误。 编译器也不喜欢我的其他解决方案,那么这怎么可能呢?

重要:什么必须留在.h以及.cpp文件中的内容?儿童班最终需要什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

删除包含...

#include "Object_Manager.h"

From" Object.h"并使用前瞻声明......

class Object_Manager;

同样,删除包含...

#include "Map.h"

来自" Object_Manager.h"并使用前瞻声明......

class Map;