Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
ВнизМНОГА указателей... Найти похожие ветки
← →
ArtemESC © (2006-10-04 19:42) [0]Пишу модуль - возникло очень много указателей, при чем некоторые из них указывает на структуры с другими... Очистка представляет собой достаточно сложный и путанный процесс - можно ли как то его упростить?
← →
Ketmar © (2006-10-04 19:48) [1]garbage collector.
← →
Джо © (2006-10-04 19:49) [2]> Очистка представляет собой достаточно сложный и путанный
> процесс - можно ли как то его упростить?
Переписать, используй всякие контейнеры или механизмы наподобие класса TList с автоочисткой. Use OOP, dude ;)
← →
Zeqfreed © (2006-10-04 19:50) [3]а) Продумать архитектуру
б) Забить на очистку
в) Забить на сложный и путанный процесс
г) Забить на программирование
д) Продумать архитектуру
← →
ProgRAMmer Dimonych (2006-10-04 19:50) [4]Указатели - это Pointer?
Я, если честно, не представляю себе, зачем нужно действительно МНОГА указателей. Подозреваю, что там и без них можно обойтись. Если вопрос в том, как, то исходник в студию.
← →
Джо © (2006-10-04 19:55) [5]Лично я вообще в последнее время предпочитаю работать с объектами только (ну, по возможности :) )через их интерфейсы. Помимо других прелестей — автоматическая очистка памяти и не нужны все эти finally с Free и FreeMem :)
← →
Ketmar © (2006-10-04 19:57) [6]>[5] Джо(c) 4-Oct-2006, 19:55
а я просто тихонько мечтаю о полноценном GC и пишу как обычно. %-)
← →
ArtemESC © (2006-10-04 20:45) [7]Вообще говоря все указатели находяться в одном классе...
Пишу универсальный паскаль-парсер, который разбирает все в разобранные структуры - тут то и указатели, в силу универсальности...
← →
Ketmar © (2006-10-04 20:50) [8]тут, вообще-то, AST. которые можно отлично оформить классами.
← →
ArtemESC © (2006-10-04 20:51) [9]Ketmar © (04.10.06 20:50) [8]
Это что еще за штука?
← →
Ketmar © (2006-10-04 20:58) [10]Abstract Synthax Trees.
← →
default © (2006-10-04 21:26) [11]свалить на платформу где есть встроенная автоматическая сборка мусора
← →
Джо © (2006-10-04 21:29) [12]Передалать записи в классы, а с классами работать через их интерфейсы :) И всех делов, не нужно за освобождением следить.
← →
TUser © (2006-10-04 21:39) [13]Ну, строй дерево, хоть с указателями, хоть с объектами. В коде их будет не много.
← →
ArtemESC © (2006-10-04 23:07) [14]default © (04.10.06 21:26) [11]
Это как?
Джо © (04.10.06 21:29) [12]
Не посоветуете ресурс какой, где четко описано, как это работает?
TUser © (04.10.06 21:39) [13]
Это не облегчает задачу..
← →
Джо © (2006-10-04 23:15) [15]> [14] ArtemESC © (04.10.06 23:07)
> Джо © (04.10.06 21:29) [12]
> Не посоветуете ресурс какой, где четко описано, как это
> работает?
У Тенцера есть статья по интерфейсам, кажется. А вообще, любая приличная книжка по Delphi may help. В Хелпе тоже достаточно информации.
← →
Джо © (2006-10-04 23:16) [16]А "работает" все благодаря счетчику ссылок, который есть у интерфейсов.
← →
isasa © (2006-10-04 23:47) [17]Джо © (04.10.06 23:16) [16]
Тут вопрос возник.
А какая разница, делать Intrf:=nil (Intrf.Release()), или Class.Free? Все равно следить ...
← →
Джо © (2006-10-04 23:49) [18]> [17] isasa © (04.10.06 23:47)
> Джо © (04.10.06 23:16) [16]
> Тут вопрос возник.
> А какая разница, делать Intrf:=nil (Intrf.Release()), или
> Class.Free? Все равно следить ...
А зачем делать Intrf := nil? Это бывает нужно достаточно редко. Если ссылок на интерфейс не осталось, то, после выхода за пределы видимости он и сам обнулится.
← →
Джо © (2006-10-04 23:53) [19]
type
IMyInterface = interface
end;
TMyClass = class (TInterfacedObject, IMyInterface)
public
destructor Destroy; override;
end;
...
destructor TMyClass.Destroy;
begin
ShowMessage ("Destroyed");
inherited;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Intf: IMyInterface;
begin
Intf := TMyClass.Create;
end;
Ничего обнулять не нужно :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.047 c