Параметры деструктора
Статья Перегружает деструкторы? рассказывает о перегрузке деструктора.
Возник вопрос: может ли деструктор иметь параметры?
Я никогда не использовал или не видел деструктор с параметрами. Я не мог придумать пример причины использовать параметры для деструктора.
Ответы
Ответ 1
Раздел 12.4 С++ 0x черновик n3290 говорит об деструкторах:
деструкторы
Для объявления деструктора в определении класса используется специальный синтаксис декларатора с использованием необязательного спецификатора функции (7.1.2), за которым следует ~, за которым следует имя класса деструкторов, за которым следует пустой список параметров.
(выделено курсивом)
Итак, нет, деструкторы не принимают параметры. (Стандарт 2003 имеет точную формулировку вышеприведенного параграфа.)
Ответ 2
Нет, это простой ответ. Это сделало бы автоматическое управление ресурсами значительной сукой, потому что вам нужно было бы беспокоиться о том, какие параметры деструктор взял и откуда, черт возьми, вы их получите. Что в случае исключения - как компилятор знает, что передать деструктор?
Ответ 3
Нет. Вы вряд ли когда-либо называете их в любом случае, так что будет использовать.
Деструктор должен уничтожить объект, не более того.