Я работаю с OpenGL и DirectX, и я начал разрабатывать основы для объектно-ориентированных игровых классов. Структура текущих классов выглядит следующим образом:C++ Forward Declaration (Pointer) - член доступа
Объект
--- | --- Актер
--------- | --- Пешка
------- - | --- Контроллер
Итак, у меня есть классы Pawn
и Controller
, которые наследуют Actor
, который наследует Object
.
Проблема в том, что мне нужно иметь ссылку Controller
в классе пешки и экземпляр Pawn
в классе контроллера.
Из-за этого я жду объявленная Pawn
и Controller
в Actor.h
:
// Actor.h
// (...) Actor Declaration (...)
class Pawn;
class Controller;
А потом в Pawn.h
:
// Pawn.h
class Pawn : public Actor
{
private:
Controller* controller;
public:
void DoSomethingWithController(void);
}
Это все хорошо, никаких ошибок и все. Проблема заключается в том, когда я хочу, чтобы получить доступ к членам в этом классе:
void Pawn::DoSomethingWithController(void)
{
// this->controller-> can't access members like this (members not found)
}
Итак, что я должен сделать, чтобы быть в состоянии иметь указатель контроллера в пешки и указатель на пешки в моем контроллере, сохраняя их в разные файлы (.h и .cpp) и в то же время возможность доступа к своим членам?
Спасибо за ваше время. : D
[если требуется больше информации, я приведу его]
Просто '#include" Controler.h "в Pawn.cpp. –
Это не проблема. Pawn.cpp не включен Pawn.h. Я надеюсь. –
Я понимаю, что вы имеете в виду, как я не помню, что могу включать файлы .h в .cpp * крайняя ладонь лица * – zeluisping