Witam, mam problem dotyczący odczytywania danych z listy.
Mając taki kod, dokładnie przy inicjalizacji pętli, dostaję wyjątek pochodzący z pliku "list", który mówi "Access violation reading location: 0xCDCDCDCD
std::string Entity::checkName(std::string& childName)
{
for (const auto& child : mChildren) //<--except
{
if (child->mName == childName);
//childName=someFuncHere
}
return childName
}
Załączam też nagłówkowy:
class Entity
{
public:
using EntityPtr = std::unique_ptr<Entity>;
Entity(EntityType, PopHead::Base::GameData*, std::string name);
virtual void input();
virtual void update(sf::Time delta);
void addChild(EntityPtr);
void removeChild(const std::string& name);
void removeChild(Entity* pointerToChildWhichIsSupposedToBeRemoved);
auto getParent() const -> Entity& { return *mParent; }
auto getName() const -> const std::string& { return mName; }
auto getChild(std::string name) const->Entity&;
private:
std::string checkName(std::string&);
protected:
Base::GameData* mGameData;
const EntityType mEntityType;
std::string mName;
Entity* mParent;
std::list< std::unique_ptr<Entity> > mChildren;
};
Nie wiem co może powodować problem, zastanawiałem się chwilę już ze znajomymi, ale nic ciekawego nie wymyśliliśmy. Thanks from the mountain ;D