![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 181
|
![]()
Всем доброго времени суток.
Запутался. У меня есть класс, унаследованный от Tlist. Насколько я понимаю, он хранит ссылки на объекты. Как я добавляю объекты: item := TSomeClass.Create; List.Add(Item); А в деструкторе класса, унаследованного от Tlist, уничтожаю каждый объект. С другой стороны, я попробовал не использовать свой деструктор и никаких утечек памяти не было. Я сделал вывод, что Tlist при своем уничтожении сам уничтожает объекты. Потом я решил в свой Tlist копировать кое-какие элементы (ну а точнее ссылки на объекты) из другого Tlist. Так вот, после уничтожения другого Tlist, не основного, объекты, хранимые в главном Tlist остаются жить. Как это можно объяснить? Какова же все-таки логика работы Tlist? Как правильно его уничтожать? Заранее благодарен. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
TList хранит указатели, и не освобождает их. Всё остальное от лукавого.
> никаких утечек памяти не было как проверяли? > в деструкторе класса, унаследованного от Tlist, уничтожаю каждый объект гораздо лучше перекрыть TList.Notify();
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а почему не TObjectList взяли за основу?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 181
|
![]()
Утечки проверял, добавив еще до создания форм:
Код:
Код:
Зы: Д2010 Последний раз редактировалось Anfall; 02.09.2011 в 17:18. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Anfall,
TObjectList наследник TList. Особой разницы я не нашёл. Ну разве что TObjectList сам освобождает все добавоенные в него обьекты в своём деструкторе. ДОБАВИЛ Сам класс находится в Contnrs Единственно что подскажу, это решение проблемы с тем что код: Код:
По этому делай так: Код:
Последний раз редактировалось Человек_Борща; 02.09.2011 в 23:58. |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]() Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 181
|
![]()
Человек_Борща, спасибо, посмотрю.
GunSmoker, Спасибо. Не совсем понял. Объекты - это объекты моего класса, который ни от чего не унаследован. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как програмно узнать имя файла на который ссылается ярлык | assch | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 05.06.2011 23:22 |
Архиватор WinRar медленно уничтожает мой компьютер... | ололошенько | Свободное общение | 7 | 03.10.2010 23:41 |
Как найти куда ссылается форма | kakawkin | HTML и CSS | 5 | 04.06.2010 13:34 |
а free pascal не читает задачи которые написаны на turbo pascal? | demonara | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 25.05.2009 16:28 |
запрос ссылается на несвязанный с ним запрос | kolebatel | SQL, базы данных | 0 | 11.06.2008 12:50 |