Confusione della dichiarazione anticipata C ++

Sto avendo qualche problema con la dichiarazione in avanti, beh, sono confuso su tutto. Ho 3 classi che dipendono l’una dall’altra. Per esempio:

  • ClassA dipende da ClassB e ClassC
  • ClassB dipende da ClassA
  • ClassC dipende da ClassA
  • ClassA e ClassC hanno solo metodi statici e membri statici

Voglio sapere come posso utilizzare le dichiarazioni di inoltro in modo tale da evitare dipendenze circolari.

Grazie per l’aiuto.

 #include  using namespace std; class B; class C; class A{ public: static B instanceOfB; static C instanceOfC; static void foo(){ cout << "A static foo called"<< endl; } }; class C{ static A instanceOfA; }; AC::instanceOfA = A(); class B{ A instanceOfA; }; BA::instanceOfB = B(); int main(){ cout << "main run"< 

1 °, è un cattivo design quando la class dipende l'una dall'altra. Secondo, questo tipo di dipendere non significa che devi tenere l'object della class, invece, se questo dipendente è complicato, devi usare un "puntatore" sull'object invece di tenere l'object. "Puntatore all'object" significa che il compilatore non richiederà il prototipo completo di quella class.