Форум: "Основная";
Текущий архив: 2002.12.12;
Скачать: [xml.tar.bz2];
Внизвот такой вот вопрос Найти похожие ветки
← →
Palladin (2002-11-30 23:22) [0]освобождается ли класс переданный параметром процедуре...
для ясности напишу две вещи
Описание:
TSimplyClass=class
private
m_Memo:TMemo;
public
constructor Create(Memo:TMemo);
destructor Destroy;override;
property PrMemo:TMemo read m_Memo;
end;
constructor TSimplyClass.Create;
begin
m_Memo:=Memo;
m_Memo.Lines.Add("Created");
end;
destructor TSimplyClass.Destroy;
begin
m_Memo.Lines.Add("Destroyed");
end;
и вот такая вещь первая:
procedure MyDestroy(var aClass:TSimplyClass);
begin
aClass.free;
end;
эксперимент:
sc:=TSimplyClass.Create(Memo1);
MyDestroy(sc);
sc.PrMemo.Lines.Add("ква ква");
1. Освободится или нет?
2. Должна ли переменная класса в nil устанавливатся при осбождении? Судя по всему не устанавливается так так "ква ква" благополучно добавилось в мемо...
и вторая вещь: если так
передаем не ссылку на ссылку :) а саму ссылку... хотя не знаю... может и в первом случае тоже сам класс передается...
procedure MyDestroy(aClass:TObject); begin
aClass.free;
end;
и в этом случае та же самая ситуация что и в первом... "ква ква" прекрасно влезает в мемо
разъясните механизм плиз... :(
← →
TTCustomDelphiMaster (2002-11-30 23:51) [1]1. Освободится или нет?
Освободится.
2. Должна ли переменная класса в nil устанавливатся при осбождении?
Не должна. Если нужно устанавливайте сами.
разъясните механизм плиз
После освобождения объекта, память занимаемая им содержит ту же информацию что и при жизни объекта, пока не будет занята под что то другое. При этом ничто не мешает программе работать так, как будто объект не был удален (жизнь после смерти :)
← →
Palladin (2002-11-30 23:55) [2]:)
круто :)
все мы там будем... хорошо если не затрут :)
спасибо...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.12;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c