Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Клуб программистов > Обсуждение статей
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 12.02.2019, 17:05   #11
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,103
Репутация: 3501

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от MihalNik Посмотреть сообщение
Для этого с самого начала существуют локальные подпрограммы и with, которым всегда можно настроить текущее пространство имен)
И чем это поможет? Я про освобождение памяти говорил, в любом случае придется в try finally все оборачивать, ну и чтобы не вкладывать их много раз приходится все объекты создавать в начале функции и уничтожать в конце.
А вызов там подпрограммы или просто перечисление всех объектов как-то мало на что-либо влияет.
Цитата:
Сообщение от MihalNik Посмотреть сообщение
никогда не переносился наивной копипастой С++ в Делфи
ну да, это скорее немного улучшенный С89 )
Alex11223 вне форума   Ответить с цитированием
Старый 12.02.2019, 17:18   #12
MihalNik
Модератор
Заслуженный модератор
 
Регистрация: 27.11.2012
Сообщений: 3,936
Репутация: 1553
По умолчанию

Цитата:
в любом случае придется в try finally все оборачивать, ну и чтобы не вкладывать их много раз приходится все объекты создавать в начале функции и уничтожать в конце.
Нет. См. #5 и #7.
__________________
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 12.02.2019 в 17:24.
MihalNik вне форума   Ответить с цитированием
Старый 13.02.2019, 07:03   #13
Pavia
Лис
Профессионал
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 1,724
Репутация: 1946
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
С того что интерфейсный объект это таблица указателей на код, а не на данные. По этой причине ваш код даже близко не умный указатель, а всего лишь недоразумение с утечкой данных.
При присвоении объекта интерфейсному объекту в него записывается указатели на методы и при выходи из функции эти указатели освобождаются. А объект который вы создали так и продолжает висеть в памяти, так как это данные.

Существует около 5 способов как интерфейс можно превратить в умный указатель, но каждый из них имеет свои недостатки начиная отсутсвия переносимости между паскалем и дельфи, и между виндоусом и линуксом.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему под виндой не удобно программировать на С++ Namira Общие вопросы C/C++ 39 29.04.2017 20:04
Перестал запускаться Delphi XE8 Sibedir Общие вопросы Delphi 4 26.11.2016 16:56
Часть Странички в delphi код перестал работать! Fahman Общие вопросы Delphi 0 02.12.2013 19:11
Перестал работать таймер в Delphi 2010 Shouldercannon Общие вопросы Delphi 4 10.07.2012 22:54
Начать программировать на Delphi xak2 Свободное общение 25 18.08.2008 07:03


06:35.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru