2014-01-22 4 views
1

У меня есть этот код:Qt QLinkedList объект Append вопрос

QLinkedList<Usuario*> conectados; 
Usuario *jose = new Usuario("Jose",1,1234); 

conectados << jose; 
conectados << new Usuario("Prueba2",1,123); 
conectados << new Usuario("Prueba3",1,123); 

QLinkedList<Usuario*>::iterator iterator; 
for(iterator = conectados.begin(); iterator != conectados.end(); iterator++) 
{ 
    qDebug()<< (*iterator)->getUserName(); 
} 

И этот выход:

"Prueba3" "Prueba3" "Prueba3"

Я попытался с QLinkedList, LinkedList без указателей, но с тем же результатом. Я не знаю, что я делаю неправильно. Я считаю, что я добавляю один и тот же указатель на связанный список или перезаписывая один и тот же объект.

Спасибо за помощь. Извините за мой плохой английский.

ответ

0

Я взял ваш фрагмент кода и заполнил пробелы. Я не вижу здесь никаких проблем - он должен быть в вашем методе доступа, getUserName();

class Usuario 
{ 
public: 

    Usuario(const QString name, int value1, int value2) : m_Name(name) {} 

    QString getUserName() { 
    return m_Name; 
    } 

private: 
    QString m_Name; 
}; 

int main(int argc, char* argv[]) 
{ 
    QLinkedList<Usuario*> conectados; 
    Usuario *jose = new Usuario("Jose",1,1234); 

    conectados << jose; 
    conectados << new Usuario("Prueba2",1,123); 
    conectados << new Usuario("Prueba3",1,123); 

    QLinkedList<Usuario*>::iterator iterator; 
    for(iterator = conectados.begin(); iterator != conectados.end(); iterator++) 
    { 
    qDebug()<< (*iterator)->getUserName(); 
    } 
    return 0; 
} 

Выход:

"Jose" 
"Prueba2" 
"Prueba3" 
+0

Проблема не был в методе аксессора, его в отчете о переменных, Im делает это как программирование Im на C, в верхней части Usuario.cpp и не в файле usuario.h, в частном разделе. Спасибо за помощь =). – JRivera294

Смежные вопросы