The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск языка программирования Rust 1.50"
Отправлено Ordu, 12-Фев-21 19:06 
>> Ну, и? Перегружать operator=? Как из оператора = вызвать деструктор для self^W
>> this?
> Именно - перегружать operator= . Можно сделать какой-нибудь защищенный (protected) метод
> Finalize, где будут аккуратно чиститься все те поля класса, которые требуют
> ручной очистки, и дергать его и в перегруженном operator=, и в
> деструкторе.

Угу. Понял.

> Все те комментарии, что тебе написали тут - они не столько со
> зла, сколько реакция на недоумение  прибывшего в монастырь гостя его
> уставом. Не всякий корректно ответит на такое. Представь себе, что ты
> приходишь к жабистам и говоришь: "Посаны, у чего это у вас
> тут деструкторов нет? А чего finalize перегруженный ни разу не вызвался?
> Нет, вы ответьте, вы ответьте, как мне добиться того, чтобы finalize
> дернулся при выходе из области видимости?!"

Мне это непонятно. Что-то бумкнуло и C++ фаны рванулись обсуждать личности, будто они по жизни не программисты, а психологи.

В Jave, насколько я её помню, есть простой ответ на поставленный вопрос:

finalize вызовется тогда, когда сборщик мусора будет подбирать память за объектом -- это может произойти через секунду, или через двое суток, зависит от разных факторов, на которые не следует полагаться. Сделать так, чтобы он вызвался при выходе из области видимости объекта невозможно. Если очень надо, вызывай finalize вручную там, где надо.

Ну, то есть, может я не правильно помню жабу, лет двадцать в неё не заглядывал, но это _три_ предложения ответа. На мой вопрос, по-хорошему, примерно столько же. Надо одно предложение на упоминание copy_elision, на случай, если я не понимаю что происходит в моём примере. Одно предложение на то, как надо заходить к решению -- перегружать =. То есть даже в два можно уложиться.

ps. А на форумах C++ сплошные тролли небось? Если на простые вопросы такая реакция, там небось кормиться можно так, что потом не встать будет.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру