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