http://ideone.com/k5IaE
Mogłabym prosić kogoś o spojrzenie na kod świeżem okiem i napisanie gdzie jest problem?
Za pomoc dziękuję serdecznie.
bool empty()
{
return wybrany == 0;
}
poza tym, powinnaś zablokować operator = i konstruktor kopiujący (dodać pusty w private), ponieważ przy kopiowaniu skopiuje się wszystko ze wskaźnikiem włącznie, który później będzie dwukrotnie zwalniany, już nie wspominając o tym, że oba obiekty będą operować na tych samych danych
Ok, dziękuję za odp. pomogło :)
Ja dopiero co stawiam pierwsze kroki w programowaniu i liczę na waszą pomoc.
@krwq czy mogłabym cię prosić o pokazanie samej klasy jak według ciebie powinna wyglądać poprawnie, bo próbuję robić różne modyfikacje z konstruktorem, etc. o których jeszcze wspomniałeś, ale program mi się wysypuje.
chodzi tylko o dodanie w sekcji private:
nazwaklasy& operator=(const nazwaklasy& o) {}
nazwaklasy(const nazwaklasy& o) {}
A lepiej napisać to tak:
public:
nazwaklasy &operator=(const nazwaklasy &o) = delete;
nazwaklasy(const nazwaklasy &o) = delete;
Zrobiłam tak jak mi polecacie, ale coś mi nie wychodzi :/ http://ideone.com/k5IaE
Trza użyć C++11: http://ideone.com/ggPGM
Dzięki, jakby ktoś mógł w przystępny sposób mi wytłumaczyć co robią te dwie linijki?
Usuwają domyślny konstruktor kopiujący i operator przypisania.
stack &operator=(const stack &o) = delete;
W ogóle tego nie rozumiem, po co dokładnie jest ta linijka?
Skąd &operator ... &o ?