Hello i have question about Maps and Inheritance.
I have Map of BaseClass Pointer:
std::map<int,std::shared_ptr<Game>> GamesByID;
and inserted Derived Class Pointer into it like:
GamesByID.insert(make_pair(ID,std::make_shared<ActionGame>(ID,Title,Metacritic,Recommendations,Price,lvl)));
now i wanted to count how many ActionGame Pointer i had in my map with somthing like that
  for (auto& e : GamesByID)
        {
    if(typeid(e) == typeid(SurvivalGame)){
            ++count;
            
    }else{
        cout << typeid(e).name() << "  typeid" <<endl;
    }
}
But in the map ther are only BaseClass Pointer, now what is my mistake do i instert them wrong ?
Aucun commentaire:
Enregistrer un commentaire