Siema,
mam do napisania kopiec zaimplementowany na wskaźnikach, tak więc mam klasę Element:
class Element{
friend class Kopiec;
private:
int liczba;
Element* left;
Element* right;
Element* parent;
public:
Element(int a);
Element* operator[](int index);
};
i klase Kopiec:
class Kopiec{
private:
Element root;
int ilosc;
public:
Kopiec(int a);
void Wypisz();
void Dodaj(int nowa_liczba);
Wszystko chcę zrobić przez przeładowanie operatora [], czyli że podam numer dodawanego elementu i on mi określi pozycję gdzie mam ten element wkleić. Problem występuje w returnie tegóż przeładowania. Chciałem zwracać wskaźnik na dany element(bądź też wskaźnik aktualnie NULL, któremu dopiero przypiszę element), ale program zwraca mi "cannot convert Element to Element* in assigment w linijce
Element *temp=root[ilosc];
kombinowałem coś z referencjami, wskaźnikami rzutowaniami i wszystkim i już mam taki mętlik w głowie, że sam tego nie znajdę, dlatego zwracam się o pomoc
zapodaję uproszczone przeładowanie operatora[]
Element* Element::operator[](int index){
Element *temp=this;
if(!index) return temp;
.............................
if(licznik) temp=temp->right;
else temp=temp->left;
};
return temp;
}
dzięki z góry za pomoc