Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.039 c
15-1159897272
SergP
2006-10-03 21:41
2006.10.22
Очень срочно подскажите.....


3-1156338842
Michael Makushev
2006-08-23 17:14
2006.10.22
Не удаляется ADO соединение со стороны сервера MSSQL


3-1156415426
ANB
2006-08-24 14:30
2006.10.22
Как иммитировать case в запросе в хранимке ?


3-1155899628
Bless
2006-08-18 15:13
2006.10.22
Коды ошибок провайдера.


9-1136637230
Дорогие РОССИЯНЕ :)
2006-01-07 15:33
2006.10.22
Взаимодействие





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский