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

TList и объекты -экземпляры классов   Найти похожие ветки 

 
ghrup   (2004-08-31 22:49) [0]

Вопрос про TList.
function Add(Item: Pointer): Integer;

В помощи написано что вункция Add добавляет указатели на об
но как быть с объектами -экземплярами классов?
Вроде бы как в Delphi все объекты указатели, так ведь они же не явные указатели,
как например:

P:^TSomeRecord;
sr:TSomeRecord;
ls:TList;

sr.a:=3;
sr.b:=7;
P:=@sr;

ls:=TList.Create;
ls.Add(P);
ls.Add(TSomeClass.Create);//Такое использование Tlist правильно, или нет?
ls[1].free;

Ещё подобный вопрос.

Как правильно определять процедуру?

procedure proc(var ls:TStringList);

либо

procedure proc(ls:TStringList);

Есть ли разницы между ними?

В обоих случаях копирования из вызывающей ф-ии в вызываемую ф-ию не происходит,
так есть ли разница при вызове?


 
афвуд   (2004-08-31 22:53) [1]

ls:=TList.Create;
ls.Add(P);
ls.Add(TSomeClass.Create);
TSomeClass(ls[1]).Free;

Так правильней.


> procedure proc(var ls:TStringList);
> либо
> procedure proc(ls:TStringList);
> Есть ли разницы между ними?
> В обоих случаях копирования из вызывающей ф-ии в вызываемую
> ф-ию не происходит,
> так есть ли разница при вызове?


Есть. В первой процедуре можно будет поменять TStringList.


 
wicked ©   (2004-09-01 11:03) [2]


> procedure proc(var ls:TStringList);
> либо
> procedure proc(ls:TStringList);

разница есть, но не такая...
в первом случае в процедуру передается ссылка на ссылку на обьект (ссылка на переменную, которая является ссылкой на обьект) и в процедуре можно менять как сам обьект, так и ссылку на него...
во втором - передается ссылка на обьект TStringList, который (обьект) можно там менять...



Страницы: 1 вся ветка

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



Память: 0.45 MB
Время: 0.02 c
4-1091954202
Кодер
2004-08-08 12:36
2004.09.19
Размеры рабочего стола


14-1093807996
Феликс
2004-08-29 23:33
2004.09.19
Респект нашим спортсменам.


14-1093785588
Seldon
2004-08-29 17:19
2004.09.19
help к MemProof


14-1093623426
Michael
2004-08-27 20:17
2004.09.19
Посоветуйте как лучше разбить диск на 80Гб


6-1089718505
BDytel
2004-07-13 15:35
2004.09.19
Непонятные тормоза в работе ServerSocket




   Наверх