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

Obiekty na stercie, a ich zwalnianie

Ostatnio zmodyfikowano 2015-08-14 13:54
Autor Wiadomość
kolesgit
Temat założony przez niniejszego użytkownika
Obiekty na stercie, a ich zwalnianie
» 2015-08-14 13:23:30
Witam. Nurtuje mnie pytanie, gdy mam przykładowy kod:

void foo()
{
  sp<ABuffer> bufor = new ABuffer(data_size + 1);
}
Obiekt bufor jest alokowany trwale na stercie, przy czym trzeba pamiętać o operatorze delete, jeżeli chcemy zwolnić blok.
Dlaczego podczas kiedy oglądam log z backtrace'a / stacktrace'a, widzę odwołanie do destruktora, skoro nigdzie jawnie go nie wołam?

Kolejne pytanie, czy jest możliwość nadpisania adresu destruktora inną funkcją tej samej klasy na stercie ?
P-136227
kolesgit
Temat założony przez niniejszego użytkownika
» 2015-08-14 13:54:57
Już po problemie, po prostu mechanizmy takie jak auto_ptr, unique_ptr oraz shared_ptr w C++, pamiętają o automatycznym wołaniu destruktora po wyjściu z funkcji. Dla zainteresowanych, mechanizmy te nazywają się "smart pointers" - wskaźniki inteligentne, polecam, bardzo wygodne w zastosowaniu.
P-136230
« 1 »
  Strona 1 z 1