Je travaille avec OpenGL et DirectX, et j'ai commencé à développer les bases pour les classes de jeu orientées objet. La structure des classes en cours est la suivante:C++ Forward Declaration (Pointer) - Membre d'accès
objet
--- | --- Acteur
--------- | --- Pawn
------- - | --- Contrôleur
J'ai donc la classe Pawn
et Controller
qui hérite Actor
qui hérite de Object
.
Le problème est que j'ai besoin d'avoir une référence de Controller
dans la classe pawn et une instance de Pawn
dans la classe de contrôleur.
En raison de cela, je l'avant et a déclaré Pawn
Controller
dans Actor.h
:
// Actor.h
// (...) Actor Declaration (...)
class Pawn;
class Controller;
Et puis dans Pawn.h
:
// Pawn.h
class Pawn : public Actor
{
private:
Controller* controller;
public:
void DoSomethingWithController(void);
}
Tout cela est bon, aucune erreur et tout. Le problème est quand je veux accéder aux membres de cette classe:
void Pawn::DoSomethingWithController(void)
{
// this->controller-> can't access members like this (members not found)
}
Alors, que dois-je faire pour être en mesure d'avoir un pointeur de contrôleur en gage et un pointeur vers un pion dans mon contrôleur de les maintenir en différents fichiers (.h et .cpp) et en même temps pouvoir accéder à ses membres?
Nous vous remercions de votre temps. : D
[si plus d'information est nécessaire, je vais fournir ce]
Juste '#include" Controler.h "' dans Pawn.cpp. –
Ce n'est pas un problème. Pawn.cpp n'est pas inclus par Pawn.h. J'espère. –
Je vois ce que vous voulez dire, comment je ne me souviens pas que je peux inclure des fichiers. H dans .cpp * Extreme Face Palm * – zeluisping