ich vor kurzem in einer Situation wie dieser stecken geblieben:Forward-Deklaration von verschachtelten Typen/Klassen in C++
class A
{
public:
typedef struct/class {...} B;
...
C::D *someField;
}
class C
{
public:
typedef struct/class {...} D;
...
A::B *someField;
}
Normalerweise können Sie einen Klassennamen deklarieren:
class A;
Aber man kann nicht vorwärts Wenn Sie einen verschachtelten Typ deklarieren, verursacht das folgende Kompilierungsfehler.
class C::D;
Irgendwelche Ideen?
Warum brauchen Sie das? Beachten Sie, dass Sie deklarieren können, wenn es sich um ein Mitglied derselben Klasse handelt: Klasse X {Klasse Y; Y * a; }; Klasse X :: Y {}; –
Faszinierender Fehler. –
Diese Lösung funktionierte für mich (Namensbereich C {Klasse D;};): http://StackOverflow.com/questions/22389784/c-code-fails-to-Compile-after-Upgrading-xcode-5-0-5 -1-Vorwärts-Deklaration –