2014-12-14 7 views
1

Мне нужно создать QVectorIterator, чтобы перебирать в QVector из строк QString следующим образом:Qt: VectorIterator кварты не тип

#include <QString> 
#include <QVectorIterator> 

#include <QLabel> 
#include <QTimer> 

class Dice : public QLabel 
{ 
    Q_OBJECT 

    private: 
     QVector<QString> dice_faces; 
     QVectorIterator<QString> it(dice_faces); 
     QTimer *timer; 
    ... 

Но я получаю эту ошибку, и не понимаю, что это неправильно, или же QVectorIterator не может перебирать вектор QString?

Dice.h:16: error: 'dice_faces' is not a type 
    QVectorIterator<QString> i(dice_faces); 
           ^

ответ

2

Вы должны инициализировать итератор в списке инициализации в конструкторе

#include <QString> 
#include <QVectorIterator> 

#include <QLabel> 
#include <QTimer> 

class Dice : public QLabel 
{ 
    Q_OBJECT 

    public: 
     Dice(QObject *parent); 

    private: 
     QVector<QString> dice_faces; 
     QVectorIterator<QString> it(dice_faces); 
     QTimer *timer; 
    // ... 

dice.cpp

// ... 

Dice::Dice(QObject *parent) 
    : QLabel(parent), 
    it(dice_faces) 
{ 
} 
+0

Я знал, что это будет глупый вопрос, я под Pression ..., спасибо в любом случае –

+0

Добро пожаловать. Я все еще не думаю, что это прекрасное решение. Рассмотрите объявление итератора в локальной области, где вы только итерации. –