Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

Указатели и классовые переменные   Найти похожие ветки 

 
LordOfRock ©   (2006-02-14 13:39) [0]

За неимением инструкции по делфи, задаю такой дебильный вопрос.

Есть класс. Добустим TMyClass

Создаю переменную классового типа: MyClass : TMyClass и делаю ей Create

Потом добавляю эту переменную в несколько экземпляров TList"a, допустим так:

var
 List1 : Tlist;
 List2 : TList;
begin
 List1.Create;
 List2.Create;
 List1.Add(MyClass);
 List2.Add(MyClass);
end;


При получении из одного Листа классовой переменной,затем изменения некоторых свойств: эти изменения отразятся сразу во всех Листах, или прописывать надо будет?


 
begin...end ©   (2006-02-14 13:55) [1]

> LordOfRock ©   (14.02.06 13:39)

> Создаю переменную классового типа: MyClass : TMyClass и
> делаю ей Create...

...и после этого переменная MyClass начинает указывать на некоторую структуру в памяти -- экземпляр класса.

> Потом добавляю эту переменную в несколько экземпляров TList"a...

...т.е. в несколько списков будет добавлен указатель на один и тот же экземпляр класса.

> При получении из одного Листа классовой переменной,затем
> изменения некоторых свойств...

...будет изменён экземпляр класса, на который она указывает. При этом элемент второго списка продолжает указывать на тот же самый экземпляр.

> ...эти изменения отразятся сразу во всех Листах?

В самих "листах" никаких изменений не будет -- в них, как и ранее, находятся указатели, значение которых (адрес экземпляра) не поменялось. А вот сам экземпляр, возможно, поменялся, и указатели из обоих списков теперь содержат адрес уже изменённого экземпляра.

> List1.Create;

List1 := TList.Create. Иначе будет не создание, а переинициализация. И с любым другим классом -- так же.


 
begin...end ©   (2006-02-14 14:04) [2]

> При этом элемент второго списка продолжает указывать на
> тот же самый экземпляр.

Чтобы не было неясностей, поясню: на тот же самый экземпляр, на который указывает элемент первого списка.


 
LordOfRock ©   (2006-02-14 14:37) [3]

begin...end ©   (14.02.06 13:55) [1]
begin...end ©   (14.02.06 14:04) [2]
Огромное спасибо за разъяснение. Собственно, на подсознательном уровне так и думал, но теперь вголове полная ясность.



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

Текущий архив: 2006.03.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
1-1138729433
sergeii
2006-01-31 20:43
2006.03.05
Передвижение елемнтов


2-1140252679
Urvin
2006-02-18 11:51
2006.03.05
Поймать событие зезактивации формы


15-1139683603
vidiv
2006-02-11 21:46
2006.03.05
"Рекурсивный" запрос SQL


2-1140177446
zx__
2006-02-17 14:57
2006.03.05
работа с модемом


1-1138535882
Igor_thief
2006-01-29 14:58
2006.03.05
Photoshop brushes