• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Destruktor wektora wskaźników

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
214 wizyt
pytanie zadane 27 września 2020 w C i C++ przez sebaaas Początkujący (350 p.)
zamknięte 29 września 2020 przez sebaaas

Cześć.

W klasie Storage mam takie wektory wskaźników:

std::vector<std::vector<Device*>> devices_in_storage;
std::vector<std::vector<Tool*>> tools_in_storage;

wszystkie elementy dodawane są operatorem new.

Pytanie jest czy destrukcja obiektów jest prawidłowa:

Storage::~Storage() 
{
	for (auto& a : devices_in_storage)
		for (auto& b : a) delete b;

	for (auto& a : tools_in_storage)
		for (auto& b : a) delete b;
}

 Wydaje się, że odpowiednio usuwa, ale już się pogubiłem. Jakby ktoś mógł podpowiedzieć to dzięki.

komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

+1 głos
odpowiedź 27 września 2020 przez tkz Nałogowiec (41,960 p.)
wybrane 29 września 2020 przez sebaaas
 
Najlepsza
Jest okey. Tak dodatkowo dodam, że w przypadku wskaźników, nie ma znaczenia. czy odwołujesz się przez referencje, czy też nie. Bo i tak nie będziesz działał na kopi wskaźnika...
Dlaczego nie używasz smart pointerów?
komentarz 28 września 2020 przez sebaaas Początkujący (350 p.)

Rzeczywiście, dzięki. Nie używam, bo jeszcze nie umiem smiley, no i może się mylę, ale chyba zwykłe wskaźniki są trudniejsze w obsłudze, a ja jestem na etapie wstępnego poznawania C++ więc traktuję to jako naukę pracy ze wskaźnikami.

 

komentarz 28 września 2020 przez tkz Nałogowiec (41,960 p.)
Ogólny poziom wejścia jest na zbliżonym poziomie, ale przy uniqe_ptr masz pewność, że unikniesz głupich błędów. Na przykład przy rzucaniu wyjątków, gdy zapomnisz wywołać operator delete. Technika RAII trochę zaoszczędzi.

Podobne pytania

0 głosów
1 odpowiedź 106 wizyt
pytanie zadane 30 marca 2020 w C i C++ przez Quegon23 Nowicjusz (150 p.)
0 głosów
1 odpowiedź 305 wizyt
pytanie zadane 4 października 2020 w C i C++ przez sebaaas Początkujący (350 p.)
0 głosów
2 odpowiedzi 254 wizyt

90,828 zapytań

139,504 odpowiedzi

313,594 komentarzy

60,325 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...