データ ファイルを読み込んで main に作成したクラス オブジェクトのベクトルがあります。次に、ベクターに対してさまざまな操作 (さまざまなフィールドによる並べ替え、在庫の減算など) を実行する関数を含むいくつかの異なるファイルにベクターを渡します。使用しようとすると問題が発生しますpush_back
既に作成された後、別のファイル (同じプロジェクトの一部) のベクターに追加します。既存のベクトルが関数に渡され、ベクトルが関数内に正常に追加されますが、関数を終了すると、追加されたレコードはもう存在しません。私が知る限り、更新されたレコードにアクセスする必要がありますその後、さまざまなファイル内のすべてのさまざまな関数から前方にベクトルしますよね?メインで作成したものと同じ名前の場合、更新されたベクトルを返す必要はありませんか? 私が使用している言語と用語が間違っていることは確かです (お気軽に訂正してください) が、ベクトルがグローバルに更新されておらず、呼び出し中に関数内でローカルに更新されているだけのようです。 .
これは、ベクトルに追加したい場所で使用している関数内の関数定義とコードです (簡潔にするために、すべての変数パラメーターの割り当てをスキップしています)。私が指しているすべての関数は、クラス内のセッター関数であり、この時点より前に、ベクターには既に 20 のレコードが含まれており、以下の関数と同様に設定されていました。
void addBook(vector<BookData> 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);
}
あまりにも多くのコードで投稿をあふれさせたくはありませんでしたが、役立つ場合はさらに投稿できます。プログラム全体で追加 (または別の関数で行った削除) にアクセスできるようにしたいだけです。