Різниця між конструктором і деструктором

Клас лежить в основі суті об'єктно-орієнтованого програмування (OOP). Це як креслення для створення об'єктів, яке забезпечує початкові значення змінних членів та функцій членів. Це основний будівельний блок ООП, який визначає характер майбутнього об’єкта. Найважливіше в класі - це те, що він визначає новий тип даних і після його визначення можна використовувати для створення об’єктів цього типу. Тож було б достатньо сказати, що клас є шаблоном для об'єкта, а об’єкт насправді є екземпляром класу. Він використовується для створення та управління новими об'єктами та підтримки успадкування, що є однією з основних концепцій об'єктно-орієнтованих мов програмування, таких як Java. Коротше кажучи, клас організовує інформацію про тип даних з метою повторного використання елементів під час створення декількох екземплярів цього типу даних. Дані або змінні, визначені в класі, називаються змінними екземпляра.

Що таке Конструктор?

Конструктор - це особлива функція члена класу, яка викликається, коли створюється екземпляр об'єкта. Іноді може бути важко ініціалізувати всі змінні в класі кожного разу, коли створюється екземпляр. Оскільки вимога ініціалізації є загальною для об'єктно-орієнтованого програмування, вона дозволяє об'єктам автоматично ініціалізуватися під час їх створення. Цей процес автоматичної ініціалізації здійснюється за допомогою конструктора. Причина, чому його називають спеціальним, полягає в тому, що метод екземпляра зазвичай має те саме ім'я, що і клас. Він ініціалізує об'єкт відразу після створення і може бути використаний для встановлення значень членів об’єкта. Конструктор синтаксично схожий на метод в об'єктно-орієнтованому програмуванні, а метод - це процедура, пов'язана з класом і включена в будь-який об'єкт цього класу. Коротше кажучи, конструктор називається кожного разу, коли створюється об’єкт класу. Найважливіше в конструкторах - це те, що вони не мають типу повернення, навіть недійсні.

Що таке деструктор?

Деструктор - це зовсім інша концепція; це спеціальний метод, який викликається, коли екземпляр класу видаляється з пам'яті. Деструктор викликається автоматично, коли об'єкт більше не потрібен або збирається зникнути або явно вивільнений. Основна мета деструктора - позбутися ресурсів, якими об’єкт користувався протягом свого життєвого циклу. Це дає об'єкту останню можливість звільнити будь-яку виділену йому пам'ять, щоб у купі було достатньо місця для зберігання нових об’єктів для ефективного запуску програм. Деструктори часто використовуються спільно з конструкторами, за винятком того, що вони знищують об'єкти, які були створені за допомогою конструкторів. Ідея полягає в деініціалізації об'єктів при їх видаленні, щоб звільнити пам'ять для нових об’єктів. Як і конструктори, деструктори визначаються як підпрограми у визначенні класу, і вони мають те саме ім'я, що і назва класу, за винятком того, що деструктор має префікс із ~ (tilde) оператор. Деструктори викликаються явно в C ++, однак деструкторів у Java немає.

Різниця між конструктором і деструктором

Призначення конструктора та деструктора

І конструктори, і деструктори - це спеціальні функції членів кожного класу, але з різними поняттями. Конструктор використовується для ініціалізації екземпляра класу, тобто він викликається кожного разу, коли клас інстанціюється, тоді як деструктор - це протилежність конструктору, які називаються в зворотному порядку конструкторів.

Виділення пам'яті

Конструктор викликається кожного разу, коли створюється новий екземпляр класу. Це, в основному, функція-член класу, який ініціалізує об'єкт відразу після створення та виділяє йому пам'ять. З іншого боку, деструктор викликається, коли екземпляр класу видаляється з пам'яті, що в свою чергу деініціалізує об'єкти, створені за допомогою конструкторів для звільнення пам'яті для нових об'єктів.

Ім'я

І конструктори, і деструктори є спеціальними функціями-членами класу з тим самим іменем, що і ім’я класу, за винятком того, що деструктор встановлений з оператором ~ (tilde). Конструктор - це не що інше, як метод, який не має Повернення типу, навіть недійсним, тоді як деструктори прямо протилежні конструкторам.

Перевантаження

Як конструктори, так і деструктори викликаються автоматично після створення та видалення. Однак, на відміну від конструкторів, деструктори не можуть бути перевантажені. Перевантаження - це об'єктно-орієнтована концепція програмування, яка дозволяє визначити дві або більше функцій з тим самим іменем, щоб ви могли викликати їх з різними списками аргументів.

Аргументи

У об'єктно-орієнтованому програмуванні конструктори часто приймають аргументи, які вони використовують для встановлення необхідних змінних членів, тоді як деструктори не приймають жодних аргументів.

Робота конструктора та деструктора

Конструктори дозволяють об'єкту ініціалізувати частину свого значення перед його використанням, тоді як деструктори дозволяють об'єкту виконувати деяку частину коду під час його знищення..

 Деструктор віршів конструктора: порівняльна діаграма

Підсумок конструктора Vs. Деструктор

І конструктори, і деструктори є спеціальними функціями-членами класу з тим же ім'ям, що і ім'я класу, за винятком того, що деструкторам передує оператор ~ tilde. Конструктор - це не що інше, як метод, за винятком того, що він викликається, коли створюється екземпляр об'єкта, тоді як деструктор - це точно протилежне конструкторам, які викликаються, коли екземпляр об'єкта видаляється з пам'яті. Мета деструкторів - деініціалізація об'єктів, створених за допомогою конструкторів, щоб звільнити простір пам’яті для розміщення нових об’єктів.