Je suis nouveau dans Delphi et j'ai exécuté des tests pour voir sur quelles variables objet et variables de pile sont initialisées par défaut:
TInstanceVariables = class
fBoolean: boolean; // always starts off as false
fInteger: integer; // always starts off as zero
fObject: TObject; // always starts off as nil
end;
C'est le comportement auquel je suis habitué dans d'autres langages, mais je me demande s'il est sûr de s'appuyer dessus dans Delphi? Par exemple, je me demande si cela pourrait dépendre d'un paramètre du compilateur, ou peut-être fonctionner différemment sur différentes machines. Est-il normal de s'appuyer sur les valeurs initialisées par défaut pour les objets ou définissez-vous explicitement toutes les variables d'instance dans le constructeur?
En ce qui concerne les variables de pile (au niveau de la procédure), mes tests montrent que les booléens unitialisés sont vrais, les entiers unitialisés sont 2129993264 et les objets non initialisés ne sont que des pointeurs invalides (c'est-à-dire non nuls). Je suppose que la norme est de toujours définir des variables au niveau de la procédure avant d'y accéder?