Je suis récemment coincé dans une situation comme celle-ci:déclaration avant de types/classes imbriquées dans C++
class A
{
public:
typedef struct/class {...} B;
...
C::D *someField;
}
class C
{
public:
typedef struct/class {...} D;
...
A::B *someField;
}
Normalement, vous pouvez déclarer un nom de classe:
class A;
Mais vous ne pouvez pas en avant déclarer un type imbriqué, ce qui suit provoque une erreur de compilation.
class C::D;
Des idées?
Pourquoi avez-vous besoin de cela? Notez que vous pouvez renvoyer déclarer si c'est un membre de la même classe en cours de définition: classe X {classe Y; Y * a; } classe X :: Y {}; –
Erreur fascinante. –
Cette solution a fonctionné pour moi (namespace C {classe D;};): http://stackoverflow.com/questions/22389784/c-code-fails-to-compile-after-upgrading-xcode-5-0-5 -1-forward-declaration –