Je me suis récemment retrouvé coincé dans une situation comme celle-ci:
class A
{
public:
typedef struct/class {...} B;
...
C::D *someField;
}
class C
{
public:
typedef struct/class {...} D;
...
A::B *someField;
}
Habituellement, vous pouvez déclarer un nom de classe:
class A;
Mais vous ne pouvez pas déclarer un type imbriqué, ce qui suit provoque une erreur de compilation.
class C::D;
Des idées?