Avant la déclaration d'imbrication des types/classes en C++

J'ai récemment obtenu coincé dans une situation comme ceci:

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 avant un type imbriqué, les causes suivantes erreur de compilation.

class C::D;

Des idées?

  • Pourquoi avez-vous besoin? Notez que vous pouvez déclarer avant si c'est un membre de la même classe étant définie: class X { classe Y; Y *a; }; la classe X::Y { };
  • Fascinant d'erreur.
  • Cette solution a fonctionné pour moi (espace de noms C { classe D; };): stackoverflow.com/questions/22389784/...
  • J'ai trouvé une solution lien
InformationsquelleAutor Calmarius | 2009-06-04