В настоящее время у меня есть 3 класса, настроенных так:
World.h
include "WorldObject.h"
class WorldObject;
class TextObject; // when this is added, compiles fine, but tobj is incomplete when accessed
//(world->tobj->function()). if #include "TextObject.h" is added, numerous errors occur within TextObject.h
class World {
public:
WorldObject* wobj; // works fine
TextObject* tobj; //trying to get this to be functional
};
WorldObject.h
#include "World.h"
class World;
class WorldObject {
public:
WorldObject(World* world){...} // works fine, world can be accessed from world objects
};
TextObject.h
#include "WorldObject.h"
#include "World.h"
class TextObject : WorldObject {
public:
TextObject(World* world) : WorldObject(w){...};
};
Как я могу использовать предварительное объявление, чтобы tobj был доступен из World.h, как и obj, без ошибок? Я также использую #pragma один раз в начале каждого класса. Я пытался добавить «класс World» в TextObject.h и «класс TextObject» в World.h, но ни одна из, казалось бы, стандартных процедур не работает. Есть предложения?