Qt: Rückgabe von Listen



  • Guten Morgen,

    Momentan bin ich mit einem Projekt mit mehreren verketteten Listen beschäftigt. Ich verwende hierfür QLinkedList<T*>. Ich habe innerhalb einer Klasse "Zahlen" eine Get-Methode geschrieben, die mir eine private Liste zurückgeben soll.

    QLinkedList<int*>* Zahlen::GetList()
    {
    return &zahlenlist;
    }
    

    Meine Frage ist nun, wie ich die Liste richtig (Speicher schonend) zurückgeben soll, ohne immer eine Kopie dieser Liste zu erstellen.
    Ist die obrige Methode richtig, oder ist folgendes besser:

    QLinkedList<int*> Zahlen::GetList()
    {
    return zahlenlist;
    }
    

    Kann mir jemand den Unterschied erklären?
    Ich bedanke mich im Voraus.



  • Bei Qt ist fast alles implizit geshared, d.h. die Liste wird nur kopiert, wenn du sie veränderst, und Objekte zurückzugeben ist somit billig und auf jeden Fall besser.
    Warum int*?


Log in to reply