我有以下代码:
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,这是一个没有指针的链表,但结果相同。我不知道我在做什么错。我相信我将相同的指针附加到链表,或覆盖了相同的对象。
谢谢您的帮助。对不起,我的英语不好。
最佳答案
我拿了你的代码片段,并填补了空白。我在这里没有看到任何问题-它必须在您的访问器方法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"