我有这段代码:
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,一个没有指针的链表,但结果相同。我不知道我做错了什么。我相信我会将相同的指针附加到链表,或覆盖同一个对象。
感谢您的帮助。抱歉我的英语不好。
答案 0 :(得分: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"