Вниз
Скачать: CL | DM;

default-значение пирватного булёвого поля   Найти похожие ветки 

← →
Ega23 ©   (2007-10-16 10:50) [0]

type
 TMyClass = class(...)
 private
   FMyBoolField : Boolean;
 end;

После создания экземпляра класса какое значение будет? Абсолютно точно False, или всё-таки переопределить конструктор и в нём явно прописать FMyBoolField := False;  ?


← →
Суслик   (2007-10-16 10:51) [1]

false


← →
Суслик   (2007-10-16 10:52) [2]

class function TObject.InitInstance(Instance: Pointer): TObject;
var
 IntfTable: PInterfaceTable;
 ClassPtr: TClass;
 I: Integer;
begin
 FillChar(Instance^, InstanceSize, 0);  PInteger(Instance)^ := Integer(Self);
 ClassPtr := Self;
 while ClassPtr <> nil do
 begin
   IntfTable := ClassPtr.GetInterfaceTable;
   if IntfTable <> nil then
     for I := 0 to IntfTable.EntryCount-1 do
   with IntfTable.Entries[I] do
   begin
     if VTable <> nil then
       PInteger(@PChar(Instance)[IOffset])^ := Integer(VTable);
   end;
   ClassPtr := ClassPtr.ClassParent;
 end;
 Result := Instance;
end;


← →
Ega23 ©   (2007-10-16 10:53) [3]


>  FillChar(Instance^, InstanceSize, 0);


Всё понял, вопрос снят.

З.Ы.
Дима, перерегистрируй анкету.


← →
Ins ©   (2007-10-16 10:55) [4]

Абсолютно точно, если вы конечно не перекроете NewInstance. Можете, кстати, посмотреть реализацию этого метода в классе TObject. Там видно, что память под экземпляр в самом начале заполняется нулями.


← →
Сусл ©   (2007-10-16 10:58) [5]


> Дима, перерегистрируй анкету.

ок, я немного подрос.


← →
Игорь Шевченко ©   (2007-10-16 11:03) [6]


> После создания экземпляра класса какое значение будет? Абсолютно
> точно False


До тех пор, пока Borland считает False нулем :)


← →
Сусл ©   (2007-10-16 11:11) [7]

борланд нам не указ! пусть алм свою продают.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
15-1191840512
allrussia
2007-10-08 14:48
2007.11.11
"Кракозябры" при вставке из буфера


15-1191931049
Riply
2007-10-09 15:57
2007.11.11
Последний IExplorer 7


15-1192033342
oxffff
2007-10-10 20:22
2007.11.11
Очередной баг. Утечка памяти


15-1191866338
DeadLord
2007-10-08 21:58
2007.11.11
странное поведение StringGrid


8-1168752381
9903
2007-01-14 08:26
2007.11.11
Компоненты для работы c wma mp3




   Наверх