Fehlermeldung die ich nicht verstehe



  • Hallo arbeite gerade mit der SFML, denke aber es ist ein Fehler in c++. Ich habe die Zeile kommentiert die nicht funktioniert.

    //Visualization.h
    class Visualization : public Base, public sf::Drawable {
    private:
    	static std::vector<sf::Image> Images;
    protected:
    	void Render(sf::RenderTarget& Target) const;
    public:
    	sf::Sprite Sprite;
    	Visualization();
    };
    //Visualization.cpp
    void Visualization::Render(sf::RenderTarget& Target) const {
    	sf::Image newImage;
    	sf::Sprite Test(Sprite);
    
    	newImage.LoadFromFile("Test.bmp");
    	Test.SetImage(newImage);
    	Sprite.SetImage(newImage); //Geht nicht, wieso?
    
    	Target.Draw(Sprite);
    }
    

    IntelliSense: the object has type qualifiers that are not compatible with the member function ...\visualization.cpp 16

    error C2662: 'sf::Sprite::SetImage' : cannot convert 'this' pointer from 'const sf::Sprite' to 'sf::Sprite &' ...\visualization.cpp 16

    Ich verstehe nicht wieso es mit "Test" geht, aber mit "Sprite" nicht...



  • Render ist const aber setImage ändert offensichtlich den Sprite welcher ein Member deiner Klasse ist. NewImage ist eine lokale Variable und kann damit verändert werden.



  • Hatte Tomaten auf den Augen...
    Klar, verstanden danke.


Anmelden zum Antworten