【问题标题】:Qt QLinkedList object append issueQt QLinkedList 对象追加问题
【发布时间】:2014-02-13 07:07:02
【问题描述】:

我有这个代码:

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();
}

这个输出:

“普鲁巴3” “普鲁巴3” “普鲁巴3”

我尝试使用 QLinkedList,这是一个没有指针的链表,但结果相同。我不知道我做错了什么。我相信我将相同的指针附加到链表,或覆盖相同的对象。

感谢您的帮助。对不起我的英语不好。

【问题讨论】:

    标签: c++ qt object linked-list


    【解决方案1】:

    我拿了你的sn-p代码并填写了空白。我在这里没有看到任何问题 - 它必须在您的访问器方法中,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" 
    

    【讨论】:

    • 问题不在访问器方法中,它在变量的声明中,我在 C 上编程,在 Usuario.cpp 的顶部而不是在 usuario.h 文件中,在私人部分。谢谢你的帮助=)。
    猜你喜欢
    • 2017-12-29
    • 2014-01-13
    • 2020-09-11
    • 2018-01-08
    • 2017-10-18
    • 1970-01-01
    • 2011-11-10
    • 2015-09-13
    • 2020-07-30
    相关资源
    最近更新 更多