Soy nuevo en Delphi y he estado ejecutando algunas pruebas para ver qué variables de objeto y variables de pila se inicializan de forma predeterminada:
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 es el comportamiento al que estoy acostumbrado en otros idiomas, pero me pregunto si es seguro confiar en él en Delphi. Por ejemplo, me pregunto si podría depender de la configuración de un compilador o quizás funcionar de manera diferente en diferentes máquinas. ¿Es normal confiar en los valores inicializados predeterminados para los objetos o establece explícitamente todas las variables de instancia en el constructor?
En cuanto a las variables de pila (nivel de procedimiento), mis pruebas muestran que los valores booleanos unitarios son verdaderos, los enteros unitarios son 2129993264 y los objetos no inicializados son solo punteros no válidos (es decir, no nulos). Supongo que la norma es establecer siempre variables a nivel de procedimiento antes de acceder a ellas.