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

Вниз

вот такой вот вопрос   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
14-36354
andy_ar
2002-11-20 11:49
2002.12.12
Поздравьте меня!


8-36301
Chezarre
2002-08-26 14:57
2002.12.12
JPEG error #41


1-36288
smok_er
2002-12-01 00:52
2002.12.12
Auto-increment build number


3-36044
Max Zyuzin
2002-11-25 16:18
2002.12.12
UDF


1-36111
KMI
2002-12-03 11:19
2002.12.12
Как создать текстовый файл в DOS-кодировке?