Страница 1 из 1

от теории к практике

Добавлено: 25 июн 2003, 19:08
...
Уважаемые товарищи С++ ники!

А как часто (ежели вообще приходится) вы используете конструкцию:

Код: Выделить всё

delete this;
:helm:

Спасибо заранее...

Re: от теории к практике

Добавлено: 25 июн 2003, 22:23
ajkj3em
... писал(а):Уважаемые товарищи С++ ники!

А как часто (ежели вообще приходится) вы используете конструкцию:

Код: Выделить всё

delete this;
:helm:

Спасибо заранее...
регулярно в контексте reference-counted instances

пожалуйста :)

Добавлено: 25 июн 2003, 23:25
Lepsik
>>А как часто (ежели вообще приходится) вы используете конструкцию:

//delete this;

вообще никогда с тех пор когда стандартом было запрещено.

во временя TurboC++ и первого BorlandC++ такое было возможно. сейчас копилятор не допустить ручное выделение в конструкторе.

в принципе все можно обойти - но зачем такие извращения ?

Re: от теории к практике

Добавлено: 25 июн 2003, 23:27
Lepsik
huh писал(а):
регулярно в контексте reference-counted instances
ты не понял. такое можно сделать только внутри самого класса.

Re: от теории к практике

Добавлено: 26 июн 2003, 04:11
Akrav
... писал(а):Уважаемые товарищи С++ ники!

А как часто (ежели вообще приходится) вы используете конструкцию:

Код: Выделить всё

delete this;
:helm:

Спасибо заранее...
И не только
format C: тоже иногда,
А иногда даже паяльник.
Чтобы наверняка уничтожить объект.

Добавлено: 26 июн 2003, 07:41
Woozy
Не верится, что использовать delete this возможно всегда. По крайней мере метод, вызывающий такую комманду, должен передать управление коду за пределами удалённого объекта. То есть он должен быть вызыван каким-то внешним по отношению к удаляемому объекту кодом. Иначе стабильная работа программы не гарантирована.

В том же качестве, вероятно, можно ли рассматривать явный вызов деструктора класса, вроде ~ClassName(); Или нельзя?