Ich habe einen Vektor von Klassenobjekten, den ich in main erstellt habe, indem ich eine Datei eingelesen habe. Ich übergebe den Vektor dann an mehrere verschiedene Dateien, die Funktionen enthalten, die verschiedene Operationen auf dem Vektor durchführen (Sortieren nach verschiedenen Feldern, Bestandsabzug usw.). Ich stoße auf ein Problem, wenn ich versuche, mit push_back
in einer anderen Datei (die Teil des gleichen Projekts ist) zum Vektor hinzuzufügen, nachdem er bereits erstellt wurde. Der vorhandene Vektor wird an die Funktion übergeben und der Vektor wird innerhalb der Funktion erfolgreich hinzugefügt, aber wenn ich die Funktion verlasse, ist der hinzugefügte Datensatz nicht mehr vorhanden, und soweit ich das beurteilen kann, sollte ich ab diesem Zeitpunkt von all meinen verschiedenen Funktionen in verschiedenen Dateien aus auf den aktualisierten Vektor zugreifen können, oder? Ich sollte den aktualisierten Vektor nicht zurückgeben müssen, wenn er den gleichen Namen wie der in main erstellte hat, oder? Ich bin mir sicher, dass die Sprache und Terminologie, die ich benutze, falsch sind (und bitte korrigieren Sie mich), aber es ist fast so, als ob der Vektor nicht global aktualisiert wird und nur lokal innerhalb der Funktion für die Dauer ihres Aufrufs aktualisiert wird.
Das ist die Funktionsdefinition und der Code innerhalb der Funktion, den ich benutze, um dem Vektor hinzuzufügen (ich überspringe alle Variablenzuweisungen der Parameter der Kürze halber). Alle von mir genannten Funktionen sind die Setter-Funktionen innerhalb der Klasse, und bis zu diesem Zeitpunkt enthält der Vektor bereits 20 Datensätze und wurde ähnlich wie die unten stehende Funktion eingerichtet.
void addBook(vector books)
{
BookData *books1;
books1 = new BookData;
books1->setTitle(bookTitle);
books1->setAuthor(author);
books1->setPub(publisher);
books1->setIsbn(isbn);
books1->setWholesale(wholesale);
books1->setRetail(retail);
books1->setQty(qtyOnHand);
books1->setDateAdded(dateAdded);
books.push_back(*books1);
}
Ich wollte den Beitrag nicht mit zu viel Code überfluten, aber ich kann mehr posten, wenn das hilfreich wäre. Ich möchte nur, dass die Hinzufügungen (oder Löschungen, die ich in einer anderen Funktion vornehme) im gesamten Programm zugänglich sind.