ich möchte einen vector mit eigenen Klassenobjekten füllen:
std::vector<MyObject> MeineObjekte;
Es wird aus verschiedenen Quellcodedateien dann darauf schreibend und lesend zugegriffen.
Deswegen möchte ich erstens dass der Vector mehr oder weniger global verfügbar ist.
Und die enthaltenen Elemente fortbestehen.
Einfach gesagt: Ich will in einer Quellcodedatei dem Vector die Elemente hinzufügen.
Und in einer anderen wieder auslesen/verändern etc.
Ich hab das nun probiert so wie du es beschrieben hast und es funktioniert in der Tat.
Aber noch eine Frage was ich nicht ganz verstehe.
Ich hab den Vector vorhin statisch deklalriert:
x.h
static std::vector<MyObject> gObjekte;
müsste das nicht genau so funktionieren?
Ich hab in einer anderen Quellcodedatei die Anzahl der Elemente im Vector bestimmt:
std::vector<int>::size_type i = gObjekte.size();
Deklariere ich den Vector gObjekte statisch, hab ich bei der Abfrage auch wirklich 0 Objekte im Vektor.
Bei deiner Lösung mit „extern“ bekomm ich wirklich die Anzahl die im Vector enthalten ist.
Aber was macht da genau den Unterschied zwischen „static“ und „extern“, kannst du mir das erklären.
Danke trotzdem schon mal für deine Hilfe…mal wieder