Переменные 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). Я'Я предполагаю, что нормой является всегда устанавливать переменные уровня процедуры, прежде чем получить к ним доступ?