Recientemente me quedé atrapado en una situación como esta:
class A
{
public:
typedef struct/class {...} B;
...
C::D *someField;
}
class C
{
public:
typedef struct/class {...} D;
...
A::B *someField;
}
Por lo general, puede declarar un nombre de clase:
class A;
Pero no puede reenviar la declaración de un tipo anidado, lo siguiente provoca un error de compilación.
class C::D;
¿Algunas ideas?