почему бы деструктору не принимать параметры?
на самом деле, вот если вы представите ситуацию, что вами никогда не делалась попытка написать ~cl(int aaa){}; а значит вы никогда не видели ошибки компиляции "a destructor must have a 'void' parameter list" и вы вообще никогда не задумывались над этим вопросом, как бы вы рассуждали, если бы вам пришлось сказать может ли он их иметь (без компилятора под рукой)?
ведь можно же например захотеть убить объект по разному. с другой стороны, у нас же есть поля. но это ведь одно другому не мешает. так что без понимания, как это работает, и опыта типа "ткнул_не_получилось", мне кажется, хрен ответишь.
6 комментариев:
деструктор есть средство автоматического и неявного разрушения, отсюда и вывод --- не может он иметь параметров...
покажи-покажи код =) ранний фидбэк спасает от поздних трудностей =)
ну а еслиб я хотел в добавление к автоматическому удалению удалять, например, безопасно? типа там delete s(1); //удаляет сам объект, записывает в какойнить список дату из него или еще что-нить такого типа
ну тут получается, что ты хочешь в одном действии хочешь совместить слишком много =)
это нарушение принципов ООП...
а, да. об этом не подумал
ну и явный вызов delete --- это скорее редкость, чем правило... один мой знакомый говорит, что уже несколько лет не использует delete... всё умными указателями =)
Отправить комментарий