Конструктор і деструктор класу в c, purecodecpp

Деструкція визначено в рядках 34 - 37. Для простоти прикладу він просто відобразить рядок в тому місці програми, де спрацює. Рядок 43 - оголошуємо об'єкт класу і передаємо дані для запису в поля. Тут спрацює конструктор з параметрами. А в рядку 46 - спрацює конструктор за замовчуванням.

Конструктор і деструктор класу в c, purecodecpp

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

  • Конструктор і деструктор повинні бути public;
  • Конструктор і деструктор не мають типу значення, що повертається;
  • Імена класу, конструктора і деструктора повинні збігатися;
  • Конструктор може приймати параметри. Деструкція не приймає параметри;
  • При визначенні деструкції перед ім'ям треба додати символ
;
  • Конструкторів може бути кілька, але їх сигнатура повинна відрізнятися (кількістю прийнятих параметрів, наприклад);
  • Деструкція в класі повинен бути визначений тільки один.
  • Щоб підтримати наш сайт - натисніть на скарбничку і виберіть будь-який зручний спосіб.

    admin.

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

    Зовсім не важливо відразу «під час визначення» або потім. Викликається він раніше, тому що це глобальний об'єкт.

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

    Якщо об'єкт виділяє всередині себе пам'ять - то так, треба писати руками деструктор і звільняти її.
    Але у вашому випадку динамічна пам'ять не виділяється, а деструктор таки потрібен (він коректно повинен знищити об'єкт). Але в вашому прикладі його можна було і не писати зовсім - якщо деструктора в класі немає - то буде створений деструктор за замовчуванням - він видалить коректно об'єкт, але пам'ять, розподілену динамічно природно не звільнить.

    Однак є в С ++ розумні покажчики і якщо використовувати їх - то майже завжди можна покладатися на деструкцію за замовчуванням)).

    Чи не порушена купа питань по темі статті, наприклад:
    - список ініціалізації конструктора;
    - віртуальний деструктор;
    - конструктор копіювання;
    - конструктори за умовчанням;
    - виключення в конструкторах і деструктори;
    - т. П.

    Воно все буде описано? )

    admin.

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