Ce n'est pas forcement une erreur de conception , il y a quelque cas dans lesquels tu peut avoir à faire cela un simple exemple :
Mettons que tu fasse un jeu, un element "Player" peut contenir plusieurs entités, et chaque entité peut avoir besoin de savoir à quel "Player" elle appartient.
Dans ce cas on se retrouve avec ca
class Player
{
list<Entite> m_unitList;
}
et
class Entite
{
Player* m_player;
}
Pour repondre à sn00bino dans cette situation tu doit signaler dans l'une des classes que l'autre existe sans pour autant inclure le .h de cette meme classe.
Pour cela il suffit de faire quelque chose comme ca:
//Dans player.h
//Declarer une class entite
class entite;
class Player
{
list<Entite> m_unitList;
}
et
//entite.h
- include "player.h"
class Entite
{
Player* m_player;
}
Il faut ensuite inclure entite.h dans player.cpp.
Par contre avant d'appliquer cela à ton probleme tu devrais revoir ta conception car comme l'a dis dnob700 en general cela peut etre evité.