Форум: "Начинающим";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
ВнизУказатели и классовые переменные Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c