返回引用的C ++函数,对象在返回之前销毁

时间:2018-10-17 12:41:39

标签: c++ function reference

我正在编写一个函数,该函数返回对链表的引用。问题是,C ++ 在返回列表之前对其进行了销毁,这给了我一个无用的列表和很多分段错误。 这是代码:

template<typename T>
ListaEnlazada<T>& ListaEnlazada<T>::concatena(const ListaEnlazada<T>& l)
{
    ListaEnlazada<T> nuevaLista(*this);
    Iterador<T> i = l.iterador();
    while (!i.fin())
    {
        Nodo<T>* nuevo = new Nodo<T>(i.esto());
        if (nuevaLista.cola)
            nuevaLista.cola->next = nuevo;
        nuevaLista.cola = nuevo;
        nuevaLista.numDeElementos++;
        i.siguiente();
    }
    return nuevaLista;
}

我不明白为什么会这样。复制构造函数可以正常工作,而析构函数也可以正常工作。

0 个答案:

没有答案