掲示板に投稿することが初めてなので、至らぬ点も多々あるかと思いますが、よろしくお願いします。ItemとItemManagerの2つのクラスを作成し、main関数において、Itemクラスのvectorを作成し、そこにItemManagerクラスのメソッドで要素を追加し、useItem()というメソッドでそれぞれのアイテムのstockを1減らしたいのですが、これができません。値渡しではなく参照渡しをしているので、できるのかなと思ったのですが、メソッドの中だけでstockが減っているようで、反映はされていません。この問題は何が原因でどのようにすれば解決できるのでしょうか?わかりにくい説明でもうしわけございません。下にコードと実行結果を貼らせていただきます。5よろしくお願いします。宣言していたらそりゃコピーされるでしょ。ポインタじゃなくなってるし。mainで宣言しているItemと、itemManagerで保持しているvItemの中身は違うインスタンスになっているのですよ。試しにItemManager.cppのaddItemを、以下のように変えて実行してみましょうか。このときvItemにはaItemとは別のインスタンスを作成し内容をコピーして要素を追加する。5addとgetの値が違うだろう?インスタンスが同じならば、同じ値になっていないといけないが、違っているよね。vector<Item*>に直すか、あるいはuseItemを以下のように直すかどっちかですね。名前が一致する要素にアクセスする。4年前へにっくすさん非常にわかりにく質問であったにもかかわらず、大変わかりやすくかつ丁寧に解説していただき本当にありがとうございました。無事解決することができました。ミクプラは自由にリンクできます。