Зміст курсу
C++ ООП
C++ ООП
Що таке деструктор класу
Деструктори — це спеціальні функції-члени, які викликаються при завершенні життєвого циклу object's
. Їх основне призначення — звільнення ресурсів, які об'єкт міг отримати під час свого існування.
Синтаксис деструктора
Хоча вони виконують протилежні функції, створення деструктора дуже схоже на створення конструктора. Вони мають майже однакові принципи оголошення. Загальний підхід до створення деструктора:
Назва: має таку ж назву, як і клас, але перед нею ставиться тильда (
~
);Відсутність типу повернення: не має типу повернення, навіть void;
Відсутність параметрів: не може приймати жодних параметрів;
Автоматичний виклик: викликається автоматично компілятором, коли об'єкт виходить за межі області видимості або явно видаляється.
Автоматичний виклик деструкторів
Автоматичний виклик деструкторів означає автоматичне викликання деструктора. Це гарантує, що ресурси, які утримує об'єкт, будуть належним чином звільнені, що допомагає запобігти витокам пам'яті та ресурсів.
scope.cpp
delete.cpp
termination.cpp
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
коли об'єкт виходить за межі області видимості;
коли оператор
delete
використовується для видалення динамічно виділених об'єктів;коли програма завершує роботу.
Необхідність деструкторів
Основне призначення деструктора — звільнення ресурсів, отриманих об'єктом протягом його існування. Це включає закриття файлових дескрипторів, звільнення пам'яті (за допомогою new
) або подібні завдання.
ResourceHolder.cpp
FileHandler.cpp
class ResourceHolder { public: DynamicArray(int size) { data = new int(100); } ~DynamicArray() { delete data; } private: int* data; };
1. Яке основне призначення деструктора?
2. Який синтаксис оголошення деструктора?
Дякуємо за ваш відгук!