Vorwaertsdeklaration?
-
Hi,
ich habe einen Header, der grob so aussieht:
//Creator.h struct Point { ... }; class Creator { private: vector<Point> p; public: Creator(); void startXY(); };Andere Klassen inkludieren nunr Creator.h und nutzen Creator. Das Problem ist: Die Nutzer der Klasse brauchen eigentlich garnix von der Struktur Point wissen, denn die benutzt Creator nur intern (private Variable). Da die struktur aber im Header steht, sieht quasi jeder Nutzter Point.
Kann ich das irgendwie so machen, dass nur Creator Point kennt?
-
//Creator.h class Creator { private: struct Point { ... }; vector<Point> p; public: Creator(); void startXY(); };
-
Die Nutzer der Klasse brauchen eigentlich garnix von der Struktur Point wissen
Doch, er muss zumindestens die Groesse der Struktur kennen.
Kann ich das irgendwie so machen, dass nur Creator Point kennt?
Ja, aber dann darf
Creatornur mit Referenzen oder Zeiger aufPointarbeiten.
-
Durch den vector<Point> kommtst du nicht drumrum, die Definition von Point mit im Header zu haben. Standardcontainer verlangen, dass die Definition der Elemente bekannt ist.