Главная страница
    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.49 MB
Время: 0.037 c
15-1159090624
>>DEATH<<
2006-09-24 13:37
2006.10.22
Пожалуйста помогите


2-1159766533
inew
2006-10-02 09:22
2006.10.22
Перенос JPEG или BMP в MS Word


2-1159817219
Juri
2006-10-02 23:26
2006.10.22
Печать.


15-1159459101
Nic
2006-09-28 19:58
2006.10.22
Теперь и я не безработный


15-1159514963
Червь
2006-09-29 11:29
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский