Czy po wywołaniu lista.clear() zostanie także wywołany destruktor dla każdego wektora w strukturze ‘dane’ ? Jeżeli nie, to czy należy się tym przejmować i ręcznie czyścić każdy wektor struktury przed wyczyszczeniem listy?
[alex] mógłbyś to jakoś uzasadnić? Bo mi się wydaje, że nie wprowadzam w błąd. Przecież w wektorze “lista” znajdują się dwa obiekty struktury dane (dwukrotne wywołanie push_back), kiedy wywołuje lista.clear() te dwie struktury są usuwane, ale przedtem uruchamiane są destruktory obiektów składowych, czyli tego wektora wewnątrz “dane”. Proszę więc o wytłumaczenie tego, jeśli się mylę.
Wczoraj byłem nieco nieprzytomny, jakoś mi się vector ze składową dynamiczną się pomylił. nr47 i Fiołek mają racje, dopóki struktura nie zawiera żadnych wskaźników lub referencji pod które dynamicznie przydziela się pamięć nie trzeba pisać destruktorów.
PS. Poprzednią swoją wiadomość lepiej skasuję aby przypadkiem komuś w głowie nie namieszała.
Struktura ma tylko jedną różnice w porównaniu z klasą (mam na myśli różnice pomiędzy zapisami struct { }; a class { }; ) - domyślnie wszystkie składowe struktury są publiczne, a dla klasy domyślnie prywatne, reszta - dokładnie to samo.