[c++] Przekazanie argumentu do metody
Kolejne zadanie - kolejny problem >;d
Mam klasę "Sala_kinowa", która przechowuje listę jednokierunkową, składającą się z obiektów klasy Element. Te z kolei trzymają wskaźniki na interesujące mnie obiekty innej klasy.
No i mam kłopot z metodą dodającą elementy do listy. Właściwie ona działa, ale nie do końca według założeń:
Cytuj:
(...) zakładamy, że odpowiedni obiekt należy stworzyć przed wywołaniem metody, a do metody należy go przekazać bez kopiowania do obiektu lokalnego, ale też bez możliwości zmiany wewnątrz metody
Moja metoda wygląda tak:
Kod PHP:
Element * Sala_kinowa::Dodaj(Element * el)
{
if(head==NULL) //jeśli lista pusta, to nowy element staje się 'głową' listy
{
head = el;
return head;
}
else//jeśli lista ma już elementy, to 'przewijam ją' i podpinam nowy el na końcu
{
Element * tmp = head;
while(tmp->nastepny != NULL)
tmp=tmp->nastepny;
tmp->nastepny=el;
return tmp;
}
}
Do metody przekazuję wskaźnik na gotowy obiekt, więc nie jest on kopiowany. Ale jak uniemożliwić jego zmianę wewnątrz metody? Próbowałem dodać const przed argumentem metody, ale później nie da się przypisać 'el' do innego wskaźnika (błędy przy head = el i tmp->nastepny=el). Help :<