我不知道,如何在我的项目中声明一些类,包括骑自行车。
(地图 - >对象 - > 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文件中的内容?儿童班最终需要什么?
谢谢!
答案 0 :(得分:0)
删除包含...
#include "Object_Manager.h"
From" Object.h"并使用前瞻声明......
class Object_Manager;
同样,删除包含...
#include "Map.h"
来自" Object_Manager.h"并使用前瞻声明......
class Map;