Aktywne Wpisy
VaizardOmbre +286

dodi-lukebakio +10
#gielda elon pierwszy bilioner na świecie? Jak dla mnie to pewne granice zostały dzisiaj przekroczone.
ja jakimś komunistą czy czymś takim nie jestem, ale na świecie gdzie setki milionów ludzi regularnie głoduje nie powinno być miejsca na gościa z TYSIĄCEM miliardów dolarów
ja jakimś komunistą czy czymś takim nie jestem, ale na świecie gdzie setki milionów ludzi regularnie głoduje nie powinno być miejsca na gościa z TYSIĄCEM miliardów dolarów





Mianowicie...
Mam klasę abstrakcyjną Object.
3 klasy dziedziczą po Object: StringObject, IntObject, DoubleObject.
Utworzyłem do tego listę, która przetrzymuje wskaźniki do obiektów typu Object.
Następnie utworzyłem zagnieżdżoną klasę iterator w klasie List i tu zaczynają sie problemy...
Gdy wrzucę mojego iteratora do pętli for(;;) to wszystko działa, natomiast gdy wrzucę ją do pętli rangeloop, wyrzuca mi błąd, który nie do końca rozumiem, bo dlaczego chce Object konwertować do iteratora?
Tutaj zamieszczam kod, ale wszystko wrzuciłem do jednego pliku, więc może być on trudny do przejrzenia xD
#programowanie #cplusplus
źródło: comment_OKUHGtznlzQym70GPFyB4geNLWaRwzlM.jpg
Pobierzźródło: comment_As2pmkAlSYUPq7JJ9qBbXe8mpw6sY5rY.jpg
PobierzObject&to powinieieć miećfor(Object& obj : list)Edit. Jeśli tak to w jaki sposób został rozwiązany problem zwracania referencji i zwykłej "skopiowanej wartości"
@OstryKepucz: pytasz to
std::list? ona trzyma sama w sobie obiekty przez wartośc, aleoperator*zwraca referencję do trzymanego obiektu. przez to, że trzyma przez wartość, to średnio się nadaje do trzymania polimorficznych obiektów(chyba, że przez wskaźnik lub inteligentny wskaźnik).A co do drugiego... ogólny zamysł rozumiem.
Ale jak to ma wyglądać, Iterator ma być klasą? Iterator musi być "czegoś", musi mieć jakiś swój "begin()", a tworząc samą klasę
Zatem dlaczego mogę std liście użyć for( auto it : stdlist) i for( auto : stdlist), a u mnie po zamianie, żeby dereferencja iteratora zwracała wskaźnik (tak jak "oryginalny" iterator std::list który przetrzymuje wskaźniki
Komentarz usunięty przez autora
std::listzwraca referencję do wskaźnika, więcauto&działa.