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?