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

Вниз

Record в class   Найти похожие ветки 

 
bns   (2006-11-02 15:01) [0]

В моем классе присутствует record:
-------------------------------------
type TMyRecord = record
 str : string;
 int : integer;
end;

type TMyClass = class
 public
   myrecord : TMyRecord;
 end;
-------------------------------------

Нужно ли после созданиия класса mc:=TMyClass.Create создавать record New(mr)?
В тестовом примере, что я делал - не нужно, myrecord создается сама. Почему это происходит?

Освобождается ли память от TMyRecord после mc.Free или нужно делать Dispose( mr )?

Спасибо.


 
Сергей М. ©   (2006-11-02 15:09) [1]


> Нужно ли после созданиия класса mc:=TMyClass.Create создавать
> record New(mr)?


Не нужно. Да и компилятор даст тебе по мозгам за такие дилетантские потуги.
(*)


> Освобождается ли память от TMyRecord после mc.Free или нужно
> делать Dispose( mr )?


см. (*)


 
DevilDevil ©   (2006-11-02 15:16) [2]

> Нужно ли после созданиия класса mc:=TMyClass.Create создавать record New(mr)?

Нет

> Почему это происходит?

Начнём с того, что New и Dispose работают с указателями. Переменная типа TMyRecord - это не указатель, а полноценная переменная. А вот если бы ты объявил
public
  myrecord : ^TMyRecord;

, то переменная являлась бы указателем на неизвестно какую область в памяти. Поэтому и существует New: сначала динамически выделяется память, потом твоя переменная становится указателем на эту выделенную память. Но так лучше не делать...

> Освобождается ли память от TMyRecord после mc.Free

Да. Физически myrecord находится в памяти, которая была выделена под класс TMyClass. При освобождении TMyClass, освобождается myrecord.

> Спасибо.

Пожалуйста



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

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

Наверх




Память: 0.47 MB
Время: 0.037 c
15-1162528208
BorisMor
2006-11-03 07:30
2006.11.19
трабл в Turbo Delphi


3-1158567582
Fin
2006-09-18 12:19
2006.11.19
Восстановить удалённую таблицу в Access 2000


2-1162635752
Savek
2006-11-04 13:22
2006.11.19
TQRCompositeReport, количество страниц


2-1162556275
NewUser0
2006-11-03 15:17
2006.11.19
Список запушенных приложений


8-1144670277
Acidlex
2006-04-10 15:57
2006.11.19
Измерение уровня сигнала с микрофона и линейного входа