Вниз
Скачать: CL | DM;

МНОГА указателей...   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.036 c
4-1149187418
serko
2006-06-01 22:43
2006.10.22
Трафик Инспектор и Delphi


2-1160127277
Itonix
2006-10-06 13:34
2006.10.22
Приложение не реагирует


15-1159615411
Furyz
2006-09-30 15:23
2006.10.22
Windows Script


9-1137705694
ZilonAtakuit
2006-01-20 00:21
2006.10.22
Прозрачность, текстура


11-1135254985
BaryVetaL
2005-12-22 15:36
2006.10.22
Разработка конвертора VCL to KOL




   Наверх