Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Czy potrzebne jest użycie delete

Ostatnio zmodyfikowano 2021-11-12 22:39
Autor Wiadomość
krystian123456
Temat założony przez niniejszego użytkownika
Czy potrzebne jest użycie delete
» 2021-11-12 21:49:23
Czy w tej sytuacji potrzebne jest użycie delete s->p przed delete s , czy wystarczy samo delete s ?

C/C++
#include <iostream>

using namespace std;

class First { };

class Second {
public:
   
First * p;
   
Second() {
       
p = new First();
   
}
}
;

int main() {
   
Second * s = new Second();
   
delete s->p;
   
delete s;
   
   
return 0;
}
P-179058
DejaVu
» 2021-11-12 22:39:27
W C++ nie masz garbage collectora, więc każdą zaalokowaną pamięć musisz zwalniać. Jeżeli obiekt rezerwuje jakąś pamięć dynamicznie to w destruktorze tego obiektu powinieneś ją zwalniać. Użytkownik klasy/obiektu nie powinien zastanawiać się co trzeba zwolnić wewnątrz obiektu.

Jak chcesz pójść krok naprzód z automatycznym zwalnianiem pamięci to poczytaj sobie o std::shared_ptr/std::unique_ptr itp.
P-179059
« 1 »
  Strona 1 z 1