Basándome en lo ultimo que publicaste, se que hay que separar todo en *.hpp y *cpp pero no lo he hecho así ya que llega tornarse enorme para buscar un problema, también la solución que me brindaste no es la que andaba buscando. la de en el main tener que incluir las dos librerías:
Código
#include "B.h" // Esto es lo que estaba evitando #include "A.h" // Esto es lo que estaba evitando int main(){ return 0; }
Y esta es la solución:
A.hpp:
Código
#include "B.hpp" #ifndef _A_ #define _A_ class A{ private: B* b; public: A(int); A(B*); }; A::A(int algo){ b = new B(algo); } A::A(B *pB){ b = pB; } #endif
B.hpp:
Código
#ifndef _B_ #define _B_ class A; class B{ private: int dato; public: B(int); A* retornoA(); }; B::B(int algo){ dato = algo; } #include "A.hpp" A* B::retornoA(){ A *a = new A(10); return a; } #endif
Y en el main incluyo solo a A.hpp
Código
#include "A.hpp" int main(){ return 0; }
amchacon muchas gracias por ayudarme, fuiste de muy gran ayuda, de toda la gente que ayudo(nadie mas), espero que mi solución te sea de feedback,
Grafcias