Lista di oggetti



  • Ciao a tutti, ho provato a scrivere quest programma in modalità console, creo una QList e la riempio con oggetti.

    @

    #include <QCoreApplication>
    #include <iostream>
    #include "clspanino.h"
    #include "QTextStream"
    #include <QDebug>
    using namespace std;

    QTextStream t(stdin);
    static QList<clsPanino> Lista;
    void prendiValori(int i)// prendo il contatore solo per verifiche che adesso sono sotto commento
    {
    clsPanino oggetto;
    qDebug()<<"ciao, dammi un nome";
    oggetto.setValore(t.readLine());
    Lista.push_back(oggetto);
    /*
    qDebug()<<serieDiPanini[i].getValue();//stampo il nome dell'ultimo oggetto nel vettore
    if (i!=0) //stampo il nome dell'oggetto precedente
    qDebug()<<Lista[i-1].getValore();
    */

    }
    int main(int argc, char *argv[])
    {
    QCoreApplication a(argc, argv);
    for(int i=0;i<3;i++)
    prendiValori(i);
    foreach (clsPanino oggetto, Lista)
    {
    qDebug()<<oggetto.getValore();
    }
    return a.exec();
    }
    @
    Come output però mi da questo;

    ciao, dammi un nome
    pippo
    ciao, dammi un nome
    pluto
    ciao, dammi un nome
    paperino
    "paperino"
    "paperino"
    "paperino"

    Qualcuno sa spiegarmelo?



  • Ciao,

    prova in questo modo:

    @#include <QCoreApplication>
    #include <iostream>
    #include "clspanino.h"
    #include "QTextStream"
    #include <QDebug>
    using namespace std;

    QTextStream t(stdin);

    static QList<clsPanino> Lista;

    void prendiValori(int i)
    {
    clsPanino oggetto;

    qDebug() << "ciao, dammi un nome";
    
    oggetto.setValore(t.readLine());
    
    Lista.push_back(oggetto);   
    

    }

    int main(int argc, char *argv[])
    {
    QCoreApplication a(argc, argv);

    for(int i=0; i<3; i++) prendiValori(i);
    

    for (int j = 0; j < Lista.size(); j++ )
    {
    qDebug() << Lista.at(j).getValore();
    }
    return a.exec();
    }@


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.