提示コードですが下記の警告とデバッグエラーが発生するのですが警告コード対処法がわかりません。なぜでしょうか?
(*itr)->getWeapon().begin(); 部にて下記の警告文
警告[ 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
警告 C26815 このポインターは、破棄された一時インスタンスを指しているため、ダングリング状態です。 Dungeon_Game C:\Users\KenMatsuzawa\Desktop\Dungeon_Game\Dungeon_Game\Game.cpp 260
]
cpp
1// std::vector<std::shared_ptr<Weapon>> getWeapon(); //攻撃を取得 2//攻撃を取得 3std::vector<std::shared_ptr<Weapon>> Enemy::getWeapon() 4{ 5 return attack; 6} 7
cpp
1if ( (windowContext->getFrame() % 45) == 0) 2 { 3 int t = FrameWork::GetRandom(0,4); 4 if (t == 4) 5 { 6 attack.push_back(std::make_shared<Magic>(windowContext, position, moveVec)); 7 } 8 else { 9 moveVec = t; 10 } 11 12 }
cpp
1 2 3 //プレイヤーダメージ判定 エネミー 4 for (std::vector<std::shared_ptr<Enemy>>::iterator itr = enemy.begin(); itr != enemy.end(); itr++) 5 { 6 for (std::vector<std::shared_ptr<Weapon>>::iterator it = (*itr)->getWeapon().begin(); it != (*itr)->getWeapon().end();) 7 { 8 if (player->EnemyAttackCollision((*it)->mCollision) == true) 9 { 10 it = (*itr)->getWeapon().erase(it); 11 } 12 else { 13 it++; 14 } 15 } 16 } 17
> (*itr)->getWeapon()
ここで呼び出されているgetWeapon関数についての詳細をおねがいします。

追加しました。

回答2件
あなたの回答
tips
プレビュー