Compilerfehler: Feld xy hat unvollständigen Typen
-
Hi,
ich möchte in einer Klasse ein Objekt einer anderer Klasse deklarieren: (Den Code habe ich stark vereinfacht, im Original siehts anders aus)#include <string> class myIterator; //forward Deklaration class myContainer { friend class myIterator; public: myIterator& begin() {return first;} private: struct node { std::string content; myIterator next; // <--- hier beschwert sich der Compiler }; myIterator first; }; class myIterator { public: std::string& operator* () {return p->content;} private: myContainer::node* p; }; int main() {return 0;}
Bei der Deklaration von "myIterator next" sagt der Compiler "Feld next hat unvollständigen Typen". Was mache ich falsch ??
-
Forward-Deklarationen gehen nur, wenn du bis zur richtigen Definition nur Pointer verwendest. Denn ansonsten kann der Compiler die Größe des Objekts nicht bestimmen. Und die ist bei Pointern ja egal.
-
Das Ding compiliert, danke !!!