operator= (sprawdzenie poprawności)

0

Witam, jutro mam kolokwium z programowania obiektowego. Moja prośba - może ktoś sprawdzić z punktu widzenia informatycznego czy to poprawnie napisany operator=? Wszystko się kompiluje i działa ale nie wiem czy nie zgubiłem czegoś, a zależy mi, aby wszystko było na "tip top" :)

 ListOfSuspect& ListOfSuspect::operator=(const ListOfSuspect &x) 
{
    if(this==&x)
    return *this;
    else
    {
        suspect* ptr;
        ptr = head;//element poczatkowy
        while (ptr)
        {
            ptr = ptr->get_next();//pobiera wskaźnik na kolejny element
            delete head;//dealokacja pamięci
            head = ptr;
        }
        suspect *xtr = x.head;
        while (xtr != 0)
        {
            this->add_element(xtr->get_id(), xtr->get_name(), xtr->get_lname(), xtr->get_age());//funkcja dodająca element, rezerwuje ona pamięć
            xtr = xtr->get_next();
        }
    }
    return *this;
}
1
 if(this==&x)
    return *this;
 else /* <-- ten else tu niepotrzebny jest */

No i brak template... No reszty nie oceniam, bo ciężko tu cokolwiek ocenić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0