Wie erkläre ich eine innere Klasse weiter? [Duplikat]

Mögliche Duplikate:
Forward-Deklaration von verschachtelten Typen / Klassen in C ++

Ich habe so eine Klasse ...

<code>class Container {
public:
    class Iterator {
        ...
    };

    ...
};
</code>

An anderer Stelle möchte ich einen Container :: Iterator als Referenz übergeben, aber die Header-Datei nicht einschließen. Wenn ich versuche, die Klasse weiterzuleiten, erhalte ich Kompilierungsfehler.

<code>class Container::Iterator;

class Foo {
    void Read(Container::Iterator& it);
};
</code>

Das Kompilieren des obigen Codes gibt ...

<code>test.h:3: error: ‘Iterator’ in class ‘Container’ does not name a type
test.h:5: error: variable or field ‘Foo’ declared void
test.h:5: error: incomplete type ‘Container’ used in nested name specifier
test.h:5: error: ‘it’ was not declared in this scope
</code>

Wie kann ich diese Klasse weiterleiten, damit ich die Header-Datei, die die Iterator-Klasse deklariert, nicht einfügen muss?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage