STL-Vektor mit globalem Zugriff
-
Hallo!
Ich verwende in meiner MFC-Anwendung einen STL-Vektor, um die Länge dynamisch zu halten.
Jetzt habe ich den Vektor lokal im Dokument (bei Einlesen von Werten in meiner Serialize()-Funktion) erzeugt, möchte aber im ganzen Projekt mit diesem Vektor arbeiten.
Ich komme aber nichtmal im Rest des Dokuments an den Vektor dran - geschweige denn im ganzen Projekt. Ich benutze die STL wirklich nur am Rande und habe nicht allzuviel Ahnung davon - kann mir jemand einen Tip geben, wie ich das Ding global verwendbar mache?
Danke,
tronaccount
-
Hallo,
global ist sowas immer schlecht, allerdings kenn ich das Design deines Programms auch nicht. Du kannst den Vector auch per Referenz von Funktion zu Funktion weitergeben.
-
Mach den Vektor einfach zu nem Member deiner Doc-Klasse und schreib ne Funktion die ne Referenz/Zeiger auf den Vektor liefert, so kannst du ihn ihn der ganzen Doc und View Klasse benutzen.
-
... arbeite mit der MFC. Ich habe versucht, den Vektor in der Header-Datei unterzubringen - Vergebens. Ich schaffe es nicht, den STL-Vektor als gobalen Member des Dokuments zu definieren...
-
Wo ist denn das Problem?
Du hast doch deinen Header mit der Klassendeklaration, sieht ja so ungefähr aus
#include <vector> class CDeineDocKlasse : public CDocument { /* .... */ public: std::vector<int>& getVector () { return myVec; } private: std::vector<int> myVec; };
Was für nen Fehler bekommst du denn?
-
Vielleicht kannst du dich mal entscheiden in welchem Subforum du deine identische Frage beantwortet haben möchtest
http://www.c-plusplus.net/forum/viewtopic.php?t=88348
-
Also, in meiner Serialize steht folgendes:
void CSDIFrameDoc::Serialize(CArchive& ar) { ... ... vector< vector< vector< vector<double> > > > animData(timeSteps); ... ... }
Also ist mein animData[][][][] lokal in der Serialize() bekannt - nicht aber im ganzen Dokument.
Ich habe die Definition (eigentlich ist ja eine Initialisierung) mal in den Header gesetzt - erwartungsgemäß klappt das nicht.
Wielautet denn die exakte Syntax für die Definition meines Objekts im Header? Wie gesagt - bin in der STL nicht fit...
-
Könntest du dein mehrfaches Posting in den verschiedenen Subforen mal unterlassen
http://www.c-plusplus.net/forum/viewtopic.php?t=88348
-
Sorry - wußte nicht, wo es hingehört. Wegen MFC (in der MFC-Ecke) oder STL (C++-Ecke). Ich bin ja nichtmal sicher, in welcher "Abteilung" mein Problem liegt...
Einigen wir uns auf die MFC-Ecke, okay?
Sorry & Danke