Параметры деструктора - PullRequest
28 голосов
/ 05 июня 2011

Статья Деструкторы перегружаются? говорит о перегрузке деструктора.

Это подняло вопрос: может ли деструктор иметь параметры?

Я никогда не использовал и не видел деструктор с параметрами. Я не мог придумать пример причины, чтобы использовать параметры для деструктора.

Ответы [ 3 ]

38 голосов
/ 05 июня 2011

Раздел §12.4 C ++ 0x черновик n3290 может сказать о деструкторах:

Деструкторы

Специальный синтаксис объявления с использованием необязательной функцииспецификатор (7.1.2), за которым следует ˜, за которым следует имя класса деструктора, за которым следует пустой список параметров , используемый для объявления деструктора в определении класса.

(выделение добавлено)

Так что нет, деструкторы не принимают параметры.(Стандарт 2003 года имеет точную формулировку вышеприведенного абзаца.)

8 голосов
/ 05 июня 2011

Нет, это простой ответ. Это сделало бы автоматическое управление ресурсами существенной сукой, потому что вам нужно было бы беспокоиться о том, какие параметры использует деструктор и где, черт возьми, вы собираетесь их получить. Что в случае исключения - как компилятор узнает, что передать ваш деструктор?

2 голосов
/ 05 июня 2011

Нет. В любом случае, вы вряд ли когда-нибудь позвоните им напрямую, так что в этом будет польза?

Деструктор должен уничтожить объект, не более того.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...