Podczas pracy nad istniejącą biblioteką natknąłem się na dziwne użycie destruktora. Destruktor przydzielonego do stosu wektora stl był wywoływany jawnie, gdy jego przypadek może wymagać ponownego użycia tego obiektu. Te obiekty wektorowe są nieznacznie dostosowaną wersją klasy wektorowej stl, które mają wyspecjalizowaną metodę clear
. W ciele destruktora istnieją dwa wywołania metod: clear()
, _Tidy()
.Obiekt przydzielony do stosu w C++, jawne wywołanie destruktora
Próbowałem wymyślić dobry powód, dla którego ten destruktor jest wywoływany, a nie tylko clear
, ale jestem na stracie. Ktoś rzuca światło na to, dlaczego to może być dobry pomysł?
Czy możesz podać próbkę kodu, wektorów i jak się nazywa? –
Co robi funkcja _Tidy()? – Brian
Pokaż nam, w jaki sposób utworzono wektor. – sbi