QList<eigene_Klasse> sortieren -> Compilerfehler
Verfasst: 17. Juli 2007 00:13
Hallo!
Ich möchte eine QList<Number> sortieren lassen. Ich habe eine Klasse, die unter anderem einen QString enthält.
Das kompiliert soweit. Rufe ich nun aber in einer anderen Klasse für eine QList<Number> result; folgendes auf qSort(result.begin(), result.end()); , dann kompiliert es nicht mehr:
Der Fehler deutet vermutlich auf eine const-Verletzung hin. Leider sehe ich keine.
Mir ist es ja egal, wie die QList<Number> sortiert wird, aber sie soll am Ende einfach nur sortiert sein!
Danke schonmal!
QMaddin
Ich möchte eine QList<Number> sortieren lassen. Ich habe eine Klasse, die unter anderem einen QString enthält.
Code: Alles auswählen
class Number
{
public:
Number(QString &);
const QString getNumber() {return myNumber;}
const bool operator==(Number);
const bool operator<(Number);
private:
QString myNumber;
};Code: Alles auswählen
#include "number.h"
Number::Number(QString &number):
myNumber(number)
{}
const bool Number::operator==(Number rhs)
{
return (getNumber() == rhs.getNumber());
}
const bool Number::operator<(Number rhs)
{
return (getNumberI() < rhs.getNumberI());
}Code: Alles auswählen
/usr/include/qt4/QtCore/qalgorithms.h: In member function »bool qLess<T>::operator()(const T&, const T&) const [with T =Number]«:
/usr/include/qt4/QtCore/qalgorithms.h:357: instantiated from »void QAlgorithmsPrivate::qSortHelper(RandomAccessIterator, RandomAccessIterator, const T&, LessThan) [with RandomAccessIterator = QList<Number>::iterator, T = Number, LessThan = qLess<Number>]«
/usr/include/qt4/QtCore/qalgorithms.h:401: instantiated from »void QAlgorithmsPrivate::qSortHelper(RandomAccessIterator, RandomAccessIterator, const T&) [with RandomAccessIterator = QList<Number>::iterator, T = Number]«
/usr/include/qt4/QtCore/qalgorithms.h:175: instantiated from »void qSort(RandomAccessIterator, RandomAccessIterator) [with RandomAccessIterator = QList<Number>::iterator]«
fileaccess.cpp:109: instantiated from here
/usr/include/qt4/QtCore/qalgorithms.h:156: Fehler: Die Übergabe von »const Number« als »this«-Argument von »const bool Number::operator<(Number)« streicht Qualifizierer
make: *** [otherclass.o] Fehler 1Mir ist es ja egal, wie die QList<Number> sortiert wird, aber sie soll am Ende einfach nur sortiert sein!
Danke schonmal!
QMaddin