Iterator Problem



  • bool MenschlicherSpieler::anlegepruefung(const Stein &s){
    std::list<Stein>::iterator it=this->Menschpool.begin();
    	while(it!=Menschpool.end()){
    	if(s.getL()==it->getR() || s.getR()==it->getL())return true;//Fehler
    		it++;
    	}
    return false;
    }
    

    Ich will eine Liste von "Stein" objekten nach einem bestimmten Stein absuchen
    bekomme aber diese Fehlermeldung:
    error: passing `const Stein' as `this' argument of `int Stein::getR()' discards qualifiers



  • Ich nehme an Stein::getL() und Stein::getR() sind nicht als const markiert. Damit weiss der Compiler nicht dass getL() und getR() das Objekt nicht verändern. und ein const Stein kann man nicht verändern.

    class Stein {
    public:
        int getL() const; // <- das const hier am Ende
    };
    


  • Ja stimmt das war es thx


Anmelden zum Antworten