Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
ВнизПрисвоение объектов Найти похожие ветки
← →
Lamka (2005-09-12 15:59) [0]Есть некая коллекция
TmyCollect = class(TCollection)
...
myC : TmyCollect;
есть некий объектTmyObj = class
FmyCollect : TmyCollect
...
myObj : TmyObj;
можно ли присвоить все значения из myC в FmyCollect таким образом?:
myObj.FmyCollect := myC;
что будет в данном случае, FmyCollect будет присвоена ссылка на myC или значения из myC будут записаны в FmyCollect, и последующее удаление myC не затронет FmyCollect?
← →
Digitman © (2005-09-12 16:08) [1]
> FmyCollect будет присвоена ссылка на myC или значения из
> myC будут записаны в FmyCollect
1-е
> последующее удаление myC не затронет FmyCollect?
что значит "удаление myC" ?
← →
Lamka (2005-09-12 16:20) [2]
var
myC : TmyCollect;
myObj : TmyObj;
begin
myC := TmyCollect.Create;
/* заполняем myC */
myObj := TmyObj.Create;
myObj.FmyCollect := myC;
myC.Free; // после этого значения в FmyCollect не изменятся? (IMHO) если FmyCollect хранит ссылку на myC то полсе удаления myC, FmyCollect будет непонятно куда ссылаться
...
end;
← →
Digitman © (2005-09-12 16:27) [3]
> (IMHO) если FmyCollect хранит ссылку на myC то полсе удаления
> myC, FmyCollect будет непонятно куда ссылаться
так точно, сэр.
в дан.случае именно так.
только не "после удаления", а после разрушения объекта.
после
myObj.FmyCollect := myC
поле myObj.FmyCollect становится хранителем ссылки на тот же объект, на который в этот момент ссылается myC
после myC.Free объект , на который ссылается myC, будет разрушен, в то время как поле myObj.FmyCollect по-прежнему продолжает сылаться на якобы существующий объект.
← →
Lamka (2005-09-12 17:06) [4]а если явного myC.Free; не будет, но myC объявлена как локальная переменная, после выхода из области видимости где она была объявленна, данные в myObj.FmyCollect останутся рабочими?
← →
Digitman © (2005-09-12 17:08) [5]
> Lamka (12.09.05 17:06) [4]
по идее - да.
← →
ananax (2005-09-12 17:13) [6]попробуй myObj.Assign(MyC); вроде в этом случае будет создана копия объекта....
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c