As variáveis ​​delphi são inicializadas com um valor por padrão?

Sou novo no Delphi e tenho feito alguns testes para ver por quais variáveis ​​de objeto e variáveis ​​de pilha são inicializadas por padrão:

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

Este é o comportamento que eu estou acostumado em outras línguas, mas eu estou querendo saber se é seguro confiar nele no Delphi? Por exemplo, eu estou querendo saber se pode depender de uma configuração de compilador, ou talvez trabalhar de forma diferente em máquinas diferentes. É normal confiar em valores inicializados padrão para objetos ou você define explicitamente todas as variáveis ​​de instância no construtor?

Quanto às variáveis ​​de pilha (nível de procedimento), meus testes mostram que os valores booleanos unitializados são verdadeiros, os inteiros unitializados são 2129993264 e os objetos não inicializados são apenas ponteiros inválidos (ou seja, não são nulos). Eu estou supondo que a norma é sempre definir variáveis ​​de nível de procedimento antes de acessá-los?

questionAnswers(9)

yourAnswerToTheQuestion