kzhereb / knu-is-ooop2019

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

T10.24. Який код треба писати в деструкторах? #24

Open WAG13 opened 4 years ago

i1red commented 4 years ago

Якщо методах об'єктів класу відбувається виділення динамічної пам'яті(new), то у деструкторі ії треба звільнити(delete)

solovdaria commented 4 years ago

Якщо об'єкт класу містить динамічно виділену пам'ять, або файли, то в деструкторі слід прописати звільнення виділеної пам'яті.

Velly69 commented 4 years ago

Звільнення динамічної пам'яті, наприклад:

class Massiv
{
private:
    int *m_array;
    int m_length;
public:
    Massiv(int length) // конструктор
    {
        assert(length > 0);
        m_array = new int[length];
        m_length = length;
    }

    ~Massiv() // деструктор
    {
        delete[] m_array ;
    }
AntonHladkiy commented 4 years ago

Звільнення(delete) динамічної пам'яті,яка створюється за допомогою new.

RostyslavMV commented 4 years ago

Звільнення динамічної пам'яті за допомогою оператора delete, закрити файли, які були відкриті в даному об'єкті і надалі непотрібні.

ilyakorenevskyi commented 4 years ago

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

WAG13 commented 4 years ago

Необхідно прописати звільнення динамічної пам'яті (якщо потрібно) за допомогою delete