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

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
...
Частый Гость
Сообщения: 38
Зарегистрирован: 25 фев 2003, 10:13

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

Сообщение ... »

Уважаемые товарищи С++ ники!

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

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

delete this;
:helm:

Спасибо заранее...
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

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

Сообщение ajkj3em »

... писал(а):Уважаемые товарищи С++ ники!

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

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

delete this;
:helm:

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

пожалуйста :)
Аватара пользователя
Lepsik
Житель
Сообщения: 522
Зарегистрирован: 17 фев 2003, 18:34
Откуда: Berlin
Контактная информация:

Сообщение Lepsik »

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

//delete this;

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

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

в принципе все можно обойти - но зачем такие извращения ?
Аватара пользователя
Lepsik
Житель
Сообщения: 522
Зарегистрирован: 17 фев 2003, 18:34
Откуда: Berlin
Контактная информация:

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

Сообщение Lepsik »

huh писал(а):
регулярно в контексте reference-counted instances
ты не понял. такое можно сделать только внутри самого класса.
Аватара пользователя
Akrav
Графоман
Сообщения: 12527
Зарегистрирован: 17 июн 2003, 13:30

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

Сообщение Akrav »

... писал(а):Уважаемые товарищи С++ ники!

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

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

delete this;
:helm:

Спасибо заранее...
И не только
format C: тоже иногда,
А иногда даже паяльник.
Чтобы наверняка уничтожить объект.
Woozy
Завсегдатай
Сообщения: 278
Зарегистрирован: 03 мар 2003, 08:55
Откуда: RU->BC->ON->FI -> Chicago, IL -> Seattle, WA

Сообщение Woozy »

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

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