как разрешить итератору работать со списком с помощью оператора присваивания - PullRequest
0 голосов
/ 29 мая 2019

Уважаемое сообщество stackoverflow, у меня есть вопрос о том, как позволить qlistiterator работать с qlist. Согласно документации qt, qlistiterator имеет оператор присваивания "=", например:

QListIterator & QListIterator::operator=(const QList<T> & list)

Для моего кода у меня есть два члена в моем классе главного окна:

QList<int> timepoints;
QListIterator<int> timeIter(QList<int> &list);

и в конструкторе:

timeIter=timepoints;

но эта строка выдает ошибку:

invalid use of member function (did you forget the '()' ?)

Кто-нибудь может помочь объяснить, почему?

1 Ответ

0 голосов
/ 29 мая 2019

QListIterator ошибочно объявляется как функция-член вместо переменной-члена.

В вашем объявлении класса используйте:

class YourClass {
    QListIterator<int> timeIter;
};

Оператор присваивания позволяет вампереназначить итератор.Его нельзя использовать по назначению, потому что QListIterator не имеет конструктора по умолчанию.Поэтому, чтобы сделать то, что вы пытаетесь сделать, используйте инициализатор:

YourClass::YourClass()
    :timeIter{timepoints}
{
}
...