Ahoj, mám oboucestný spojový seznam (standard, poskládaný z uzlů -> int value a dva ukazatele, na předchozí a následující uzel), na netu jsem našel funkci pro smazání všech hodnot, které se v uzlu nacházejí, nicméně tato funkce je parametrická (předávám jí první uzel seznamu)
void DoubleList::smaz_seznam(DoubleListNode * pHead)
{
cout << "Mazu seznam." << endl << endl;
DoubleListNode *current = pHead->Next;
DoubleListNode *previous = pHead;
while (current)
{
delete previous;
previous = current;
current = current->Next;
}
delete current;
previous = NULL;
delete previous;
// delete pHead;
};
v mainu standardně volám
DoubleList::smaz_seznam(List);
problém je ten, že mi v programu zůstane viset toto:
čehož se pochopitelně mohu zbavit pomocí
List = NULL;
delete List;
nicméně si nejsem jistý, zda je to takhle úplně korektní. Nevytvářel jste někdo bezparametrický destruktor?
Dík,
Ondra