Quantifizierer gehen verloren ? Verstehe den Fehler nicht



  • Im folgenden Quelltext

    virtual double value(double x, double y) const
        {
    		double value = m_Array[ArrPos(
    			(int)((x - m_RangeX.min) * m_RealToArray.x),
    			(int)((y - m_RangeY.min) * m_RealToArray.y)
    			)];
    		return value;
        }
    
    int ArrPos(const int x, const int y)
    {
    	return y + m_DataSize.height() * x;
    }
    

    erhalte ich den Fehler

    1>.\include\qwtplot\QSpectrogramPlot.cpp(87) : error C2662: 'SpectrogramData::ArrPos': this-Zeiger kann nicht von 'const SpectrogramData' in 'SpectrogramData &' konvertiert werden
    1> Durch die Konvertierung gehen Qualifizierer verloren

    warum und wie umgehe ich den Fehler?



  • 'ArrPos' muss auch 'const' sein.

    Zur Interpretation der Fehlermeldung: Der „Qualifizierer“ bezieht sich auf die 'const'-heit des Objekts. In diesem Fall auf 'this', welches in einer 'const'-Methode eben 'const' ist und daher keine non-'const'-Methode aufrufen kann.


Anmelden zum Antworten