Hey tôi nhận được lỗi lạ này:sai lệch Const: 2 quá tải không có chuyển đổi pháp lý cho con trỏ 'này'
error C2663: 'sf::Drawable::SetPosition' : 2 overloads have no legal conversion for 'this' pointer
Tôi nghĩ rằng nó có cái gì để làm với sai lệch const nhưng tôi không biết nơi , hoặc tại sao. Trong đoạn mã sau, tôi có một vectơ các hình dạng và các vân, và khi cố truy cập một trong các hình dạng vectơ và gọi một trong các chức năng của nó, tôi đang gặp lỗi.
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]);}
làm cách nào tôi có thể sửa lỗi này ??
Dòng nào xảy ra? –
Tại sao câu hỏi này có điểm số cao như vậy? Xin lỗi, không có ý định phạm tội, nhưng không phải là nó rõ ràng? – Liviu