kzhereb / knu-is-ooop2019

Materials for "Fundamentals of OOP" course
MIT License
3 stars 0 forks source link

T10.28. Чи всі поля-вказівники треба видаляти в деструкторі? #28

Open WAG13 opened 4 years ago

aoyako commented 4 years ago

Не треба видаляти ті, котрі будуть видалені потім іншими об'єктами (базовим класом, наприклад). Також не треба видадяти ту пам'ять, що використовується групою об'єктів одночасно. В такому випадку відповідальність за звільнення несе останній видалений об'єкт. Взагалі, краще використовувати smart pointers, щоб не виникали такі питання.

AntonHladkiy commented 4 years ago

Не треба видаляти вказівники які використовуються в інших об'єктах. Якщо зробити smart pointer то взагалі не потрібно буде нічого видаляти

RostyslavMV commented 4 years ago

Не потрібно видаляти вказівники, якщо вони потрібні надалі в програмі, для інших об'єктів чи функцій. На С++ в такому випадку краще використовувати smart pointers, де робота з видалення ведеться автоматично.

i1red commented 4 years ago

Не треба видаляти ті покажчики, що вказують на об'єкти, які використовуються іншими об'єктами, а також ті, що не вказують на динамічно створені об'єкти

ilyakorenevskyi commented 4 years ago

Не треба видаляти покажчики на об'єкти, що використовуються іншими об'єктами, або вони потрібні надалі у программі. Для автоматичного контролю кілкості використання покажчиків звучно використовувати smart pointer