Come devo risolvere il seguente tipo di dipendenza circolare?Risoluzione della dipendenza circolare in cui ogni struttura dipendente accede ai suoi metodi
//A.hpp
#include "B.hpp"
struct A {
B b;
int foo();
};
//A.cpp
#include "A.hpp"
int A::foo{
b.fi(*this);
}
//B.hpp
struct A;
struct B {
int fi(const A &a);
};
//B.cpp
#include "B.hpp"
int B::fi(const A &a){
if(a.something())
something_else();
}
utilizzare le dichiarazioni previsionali –
Non posso semplicemente avanti dichiarare una in B.hpp perché in B.cpp, A :: qualcosa() viene chiamato. Allo stesso modo non posso semplicemente inoltrare la dichiarazione B in A.hpp perché viene chiamato B :: fi (const A &). – MVTC
Perché non puoi fare come sopra, ma anche '#include" A.hpp "' in 'B.cpp'? –