Question

Je vais avoir un problème de compréhension de certains comportements QList.

#include <QList>
#include <iostream>
using namespace std;

int main()
{
    QList<double> *myList;

    myList = new QList<double>;
    double myNumber;
    double ABC;

    for (int i=0; i<1000000; i++)
    {
        myNumber = i;
        myList->append(myNumber);
        ABC = myList[i]; //<----------!!!!!!!!!!!!!!!!!!!
        cout << ABC << endl;
    }

    cout << "Done!" << endl;
    return 0;
}

J'obtiens l'erreur de compilation ne peut pas convertir « QList » à « double » dans l'affectation à la ligne marquée. Il fonctionne quand j'utilise ABC = myList.at(i), mais la référence QT semble dire que at() et [] operator est la même chose. Quelqu'un sait-il ce qui fait la différence?

Merci

Était-ce utile?

La solution

En effet, operator[] devrait être appliquée à un QList objet , mais myList est un pointeur pour QList.

Essayez

ABC = (*myList)[i];

au lieu. (En outre, la syntaxe correcte doit être myList->at(i) au lieu de myList.at(i).)

Autres conseils

Vous avez probablement voulu dire

ABC = (*myList)[i];

myList est un pointeur sur QList vous devez donc l'utiliser comme (*myList)[i] dans la ligne marquée par des points d'exclamation. En outre, vous ne pouvez pas utiliser ABC = myList.at(i), vous devez utiliser ABC = myList->at(i)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top