Връщане на QMap<QString,QString> дава segmentation fault



  • Здравейте!
    Имам няколко класа, като атрибутите им се съхраняват в

    protected:
       QMap <QString,QString> attributes;
    

    За достъп до елемент имам функцията

    QString getAttribute(QString Aname) const
    {
      return attributes.find(Aname).value();
    }
    

    която работи, но при опит да ползвам

    QMap<QString,QString> getAttributes() const
    {
      return attributes;   
    }
    

    Получавам segmentation fault и се чудя какъв е проблемът. Получаване на QVector по този начин няма проблем.
    По-точно проблем се появява като ползвам итератор за обхождане на QMap, фунцкията count() връща точния брой елементи.

    qDebug() << obj.getAttributes().count();
    QMap<QString,QString>::itterator it;
    for ( it = obj.getAttributes().begin(); it!=obj.getAttributes().end();++it)
    {
         qDebug() << it.key() << it.value(); // тук гърми
    }
    

    Ако копирам върнатия QMap във временен QMap обект и използвайки него работи. Каква е разликата с QVector например, че не става директната употреба на върнатия обект?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.