Переменные delphi инициализируются значением по умолчанию?

я новичок в Delphi, и ямы выполнили несколько тестов, чтобы увидеть, какие переменные объекта и переменные стека по умолчанию инициализируются:

TInstanceVariables = class
  fBoolean: boolean; // always starts off as false
  fInteger: integer; // always starts off as zero
  fObject: TObject; // always starts off as nil
end;

Это поведение, которое яЯ привык к другим языкам, но ямне интересно, если этона него можно положиться в Delphi? Например, яМне интересно, может ли это зависеть от настроек компилятора или работать по-разному на разных машинах. Нормально ли полагаться на инициализированные значения по умолчанию для объектов, или вы явно устанавливаете все переменные экземпляра в конструкторе?

Что касается переменных стека (на уровне процедуры), мои тесты показывают, что унифицированные логические значения имеют значение true, целочисленные целочисленные значения равны 2129993264, а неинициализированные объекты являются просто недопустимыми указателями (т.е. не nil). Я'Я предполагаю, что нормой является всегда устанавливать переменные уровня процедуры, прежде чем получить к ним доступ?

Ответы на вопрос(9)

Ваш ответ на вопрос