powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / С какой версии Delphi поля класса при его создании инициализируются нулями?
9 сообщений из 9, страница 1 из 1
С какой версии Delphi поля класса при его создании инициализируются нулями?
    #39637377
У меня есть стойкое ощущение что так было всегда.
Так ли это?
У меня сегодня был разговор где два специалиста по Delphi утверждали что в их Delphi 7 поля класса нулями не инициализируются и им приходится инициализировать их в конструкторе.
Не доверять им не могу. Пытаюсь понять как такое может быть.
...
Рейтинг: 0 / 0
С какой версии Delphi поля класса при его создании инициализируются нулями?
    #39637385
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пятёрка инициализирует
...
Рейтинг: 0 / 0
С какой версии Delphi поля класса при его создании инициализируются нулями?
    #39637393
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в D7 точно инициализируются
...
Рейтинг: 0 / 0
С какой версии Delphi поля класса при его создании инициализируются нулями?
    #39637396
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
class function TObject.InitInstance(Instance: Pointer): TObject;
var
  IntfTable: PInterfaceTable;
  ClassPtr: TClass;
  I: Integer;
begin
  FillChar(Instance^, InstanceSize, 0);
  PPointer(Instance)^ := Pointer(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
            PPointer(@PByte(Instance)[IOffset])^ := VTable;
        end;
    ClassPtr := ClassPtr.ClassParent;
  end;
  Result := Instance;
end;
...
Рейтинг: 0 / 0
С какой версии Delphi поля класса при его создании инициализируются нулями?
    #39637415
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
необычный вопрос,

Именно класса - с самого начала, руками надо object инициализировать, AFAIR.
Пруф, delphi 2
[/img]
...
Рейтинг: 0 / 0
С какой версии Delphi поля класса при его создании инициализируются нулями?
    #39637528
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
необычный вопросдва специалиста по Delphi утверждали что в их Delphi 7 поля класса нулями не инициализируются
Это ложь.
...
Рейтинг: 0 / 0
С какой версии Delphi поля класса при его создании инициализируются нулями?
    #39637849
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, еще есть такие, кто полагается на дефолтные значения?

Добавил свойство, будь добр инициализировать его начальным значением)
...
Рейтинг: 0 / 0
С какой версии Delphi поля класса при его создании инициализируются нулями?
    #39637853
jmp_original
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asutp2, ну-ну.
...
Рейтинг: 0 / 0
С какой версии Delphi поля класса при его создании инициализируются нулями?
    #39637854
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asutp2А что, еще есть такие, кто полагается на дефолтные значения?

Добавил свойство, будь добр инициализировать его начальным значением)

Если по логике дефолтное значение не ноль, то да. А если ноль, пустая строка итд то Зачем выполнять одно и тоже два раза?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / С какой версии Delphi поля класса при его создании инициализируются нулями?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]