Несоответствия констант: 2 перегрузки не имеют допустимого преобразования для указателя this

Я получаю эту странную ошибку:

error C2663: 'sf :: Drawable :: SetPosition': 2 перегрузки не имеют законного преобразования для Указатель 'this'

Я думаю, это как-то связано с несоответствиями const, но я не знаю где и почему. В следующем коде у меня есть вектор фигур и спрайтов, и при попытке доступа к одной из векторных фигур и вызове одной из его функций я получаю сообщение об ошибке.

std::vector<sf::Shape> Shapes;
std::vector<sf::Sprite> Sprites;

bool AddShape(sf::Shape& S){
    Shapes.push_back(S); return true;
};
bool AddSprite(sf::Sprite& S){
    Sprites.push_back(S); return true;
};

private:

virtual void Render(sf::RenderTarget& target) const {                
    for(unsigned short I; I<Shapes.size(); I++){
        Shapes[I].SetPosition(
            Shapes[I].GetPosition().x + GetPosition().x,
            Shapes[I].GetPosition().y + GetPosition().y);
        target.Draw(Shapes[I]);
    }
    for(unsigned short I; I<Sprites.size(); I++){
        target.Draw(Sprites[I]);
    }
}

Как я могу это исправить?

17
задан Donald Duck 29 March 2018 в 05:16
поделиться