前提・実現したいこと
C++で開発を行っている初心者です。
解決方法がわからないので教えてください。
該当ソースは以下のMakeEquipmentListです。
簡略化しておりますが、
Enchantクラスにprivateで保持しているvector<Equipment> _equipmentListを生成しようとしているメソッドです。
しかし、この状態ではループが終了した時点でスコープ外となり、_equipmentListの中身が開放されてしまいます。
理屈はわかるのですが、
ループやメソッドを抜けたとしてもデータを保持するためには、具体的にどのようにコーディングすれば良いのかがわからないので教えてください。
よろしくおねがいします。
該当のソースコード
C++
1void Enchant::MakeEquipmentList() { 2 vector<vector<string>> tmp = { { "sword", "10", "20" }, {"armor", "30", "40"} }; 3 for (auto itr = tmp.begin(); itr != tmp.end(); itr++) { 4 vector<string> tmp = (*itr); 5 Equipment *equip = new Equipment(&tmp); 6 _equipmentList.push_back(*equip); 7 } 8} 9 10class Enchant { 11public: 12 MakeEquipmentList(); 13private: 14 std::vector<Equipment> _equipmentList; 15}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/15 05:27
2019/07/15 05:33
2019/07/15 05:36
2019/07/15 06:04