Основні властивості і правила використання деструкторов:
- клас може мати тільки один деструктор;
- деструктор має те ж ім'я, що і клас, в якому він оголошується, з префіксом тильда (
- деструктор не має параметрів (аргументів);
- деструктор не повертає значення (навіть типу void);
- конструктори не можна оголошувати як const або static;
- деструктор не успадковується в похідних класах. Але похідний клас може викликати деструктори для його базових (батьківських) класів;
- деструкція - це функція, і він може бути віртуальним (його можна оголосити з ключовим словом virtual);
- якщо деструктор не заданий в програмі, він буде автоматично згенерований компілятором для знищення відповідних об'єктів. Все деструктори, згенеровані таким чином, мають атрибут public;
- деструкція можна викликати так само, як звичайну функцію, якщо використовувати його повне ім'я. Наприклад, Х * р ;. р-> Х :: Х ()
- деструктор викликається автоматично тільки руйнуванні (знищенні) об'єкта;
- об'єкт, що містить деструктор, не можна включити в вигляді компонента в об'єднання (union);
- при виклику бібліотечної функції exit викликаються деструктори тільки для глобальних об'єктів;
- при виклику бібліотечної функції abort ніякі деструктори викликаються;
- якщо пам'ять під об'єкт виділено через покажчик за допомогою оператора new, то при припиненні існування цього покажчика об'єкт автоматично не руйнується. Для руйнування об'єкта в програмі треба використовувати оператор delete.