Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.05 c