Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2016, 12:20   #21
WindWest
 
Регистрация: 01.07.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от 3D Hunter Посмотреть сообщение
покажите код конструктора и деструктора для начала
ну весь код выше а так вопрос решился дело было всего в одной строке
destructor Destroy; override;
без оверайда он не являлся как-бы деструктором. Если объяснит мне кто почему так буду благодарен.
я всегда думал что описывая конструкцией destructor блалбалбла; уже заведомо создается метод именно на destroy объекта, но зачем тут нужен override я так и не пойму т.к. класс то у меня не унаследован.

Последний раз редактировалось WindWest; 23.06.2016 в 12:25.
WindWest вне форума Ответить с цитированием
Старый 23.06.2016, 12:30   #22
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Может стоит не задавать элементарных вопросов по основам ООП, а взять и почитать нужный раздел в книге по Delphi?
Если вкратце - без директивы override вы создаете фактически свою версию деструктора, для которой память не высвобождается, т.к. не вызывается деструктор класса TObject, от которого и наследован ваш класс и на основе которого и была выделена память менеджером памяти Delphi.
Кроме того, всегда следует в теле конструктора (в начале обычно) писать:
Код:
inherited Create;
в деструкторе (в конце обычно):
Код:
inherited Destroy;
Если сейчас это не так, исправьте. И не будет у вас проблем с контролем жизненного цикла объектов в рамках TObjectList. Если помог, от плюса не откажусь)
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 23.06.2016, 12:34   #23
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

override это ПЕРЕГРУЗКА виртуальных методов
Код:
TObject =class
public
  destructor Destroy; virtual; 
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 23.06.2016, 12:49   #24
WindWest
 
Регистрация: 01.07.2010
Сообщений: 8
По умолчанию

Всем спасибо, за инфу... выводы сделал...
WindWest вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
EListError при удалении 0-ого элемента ListView Человек_Борща Общие вопросы Delphi 2 23.10.2011 16:48
добавление элемента массива при подключении нового пользователя Lokos Работа с сетью в Delphi 10 01.11.2010 02:27
Использование конструкторов и деструктора при проектировании пользовательского класса НеважНо Общие вопросы C/C++ 1 22.01.2010 14:56
Использование виртуального деструктора Fataller Общие вопросы C/C++ 3 12.12.2009 22:08
PHP: использование элемента массива как массива Sudia Помощь студентам 1 20.02.2009 20:48