dynamiczna tablica w podobiekcie C++

0

Cześć, mam takie pytanie: jeśli stworzę sobie obiekt, który stworzy dynamiczną tablicę podobiektów, które również utworzą swoją tablicę jakiś obiektów to czy jeśli te podobiekty mają w destruktorze operator delete to czy kasując główny obiekt zwolni mi się również pamięć z tablicami tych podobiektów?
Chciałem się upewnić - bo na logikę to wydaje mi się, że tak właśnie to działa ;) -> ale trochę mnie martwi, że to są tablice w obiekcie głównym i podobiektach...
Czyli reasumując
Clasa A tworzy tablicę dynamiczną obiektów typu B, które tworzą np. tablicę dynamiczną typu C. Clasa B w destruktorze zwalnia pamięć dot. tych tablic. Dlatego, jeśli kasujemy tablicę w klasie A to autmatycznie powinien uruchomić się destruktor w klasie B i skasować tablice z obiektami typu C :) -> czy dobrze rozumuję?

0

Tak, jeśli masz tablicę obiektów (ale nie tablicę wskaźników do obiektów) to delete [] na tablicy wywoła destruktory elementów.

0

Jeżeli chodzi o to, że podczas deletewywoływany jest destruktor to masz rację. Pamiętaj tylko, że sam destruktor nic nie robi, delete musisz zrobić sam właśnie w nim. Tzn. kiedy usuwasz tę tablicę w klasie A, to w destruktorze klasy B musi być odpowiednie delete tablicy z klasy B itd - to tak się będzie propagować aż do końca tej hierarchii.

1 użytkowników online, w tym zalogowanych: 0, gości: 1