2014-01-22 19 views
1

我有這樣的代碼:的Qt QLinkedList對象追加問題

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

問題wasnt的訪問方法,它在變量的聲明中,Im做它基於C編程林在Usuario.cpp而不是頂在usuario.h文件中的私人部分。 感謝您的幫助=)。 – JRivera294