Nous sommes tous conscients que le pointeur (et d'autres types POD) doit être initialisé.
La question devient alors "qui doit initialiser".
Bien il existe essentiellement deux méthodes:
- Le compilateur initialise.
- Le développeur initialise.
Supposons que le compilateur initialisé toutes les variables qui ne sont pas explicitement initialisée par le développeur. Ensuite, nous entrons dans des situations où l'initialisation de la variable est non trivial, et la raison pour laquelle le développeur n'a pas à faire au point de déclaration a été il/elle a besoin pour effectuer une certaine opération, puis de les céder.
Alors maintenant, nous avons la situation que le compilateur a ajouté un supplément d'instruction pour le code qui initialise la variable à NULL puis, plus tard, le développeur code est ajouté pour faire l'initialisation correcte. Ou dans d'autres conditions, la variable est potentiellement jamais utilisé. Beaucoup de développeurs C++ crier sous le coup de ces deux conditions, au prix de ce supplément d'instruction.
C'est pas juste une question de temps. Mais aussi de l'espace. Il y a beaucoup d'environnements où les ressources sont limitées, et les développeurs ne veulent pas abandonner.
MAIS: Vous pouvez simuler l'effet de forcer l'initialisation. La plupart des compilateurs de vous avertir sur les variables non initialisées. J'ai donc toujours tourner mon niveau d'alerte au plus haut niveau possible. Puis de dire au compilateur de traiter tous les avertissements comme des erreurs. Dans ces conditions, la plupart des compilateurs va alors générer une erreur pour les variables qui sont utilisés ou non et ainsi prévenir le code généré.