Jak rozwiązać następujący typ zależności cyklicznej?Rozwiązywanie zależności cyklicznej, w której każda struktura zależna uzyskuje dostęp do swoich metod.
//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();
}
używane są deklaracje –
Nie mogę po prostu do przodu zadeklarować w B.hpp ponieważ w B.cpp, A :: coś() jest wywoływana. Podobnie nie mogę po prostu przekazać dalej deklaracji B w A.hpp, ponieważ wywoływana jest B :: fi (const A &). – MVTC
Dlaczego nie możesz zrobić tak jak powyżej, ale także '#include" A.hpp "' w 'B.cpp'? –