嘿,我得到这个奇怪的错误:
error C2663:
‘sf::Drawable::SetPosition’ : 2
overloads have no legal conversion for
‘this’ pointer
我认为它与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]);}
我怎么可以解决这个问题?