Деструкторы перегружены? - PullRequest
13 голосов
/ 05 июня 2011

enable_if страница документа говорит:

Конструкторы и деструкторы не иметь тип возврата; дополнительный аргумент это единственный вариант.

Деструкторы перегружены?

Ответы [ 2 ]

18 голосов
/ 05 июня 2011
7 голосов
/ 06 апреля 2013

Возможна ли перегрузка деструкторов?

Простой ответ Нет .
Две версии деструктора не могут сосуществовать в теле class.

Однако, в отличие от распространенного мнения, обратите внимание, что деструктор имеет синтаксис 2.

struct E {
  ~E();  // syntax-1
  ~E() throw(); // syntax-2
};

Синтаксис-2 менее популярен.Но это обязательно, если деструктор базового класса содержит похожий синтаксис.Лучший пример - наследование std::exception.

Обратите внимание, что несоблюдение такого синтаксиса приводит к:

ошибка: более слабый спецификатор броска для «виртуального E:: ~ E () '

...