Bonjour,
Ma question va paraitre bête à certains, mais ça me travaille dur...
1) Scott Meyers explique dans ses bouquins qu'il ne faut jamais accéder à une donnée non initialisée car cela conduit à un undefined behavior. On sait tous ce que ça veut dire : la plupart du temps, on lit des données semi-aléatoires mais on pourrait un jour se retrouver avec un dragon qui sort de notre PC et nous dévore. 2) Quand on ne définit pas de constructeur, le compilateur en génère un. D'après ce que j'ai lu, il initialise tous les champs qui ont un constructeur par défaut, mais quid des types de base ? Il n'y a pas de constructeurs et j'ai cru comprendre qu'ils n'étaient donc pas initialisés. 3) En connectant ces 2 informations, dois-je en conclure que je risque un UB en lisant des champs d'un objet créé avec un tel constructeur par défaut ? Ça me paraitrait insensé mais je ne vois pas l'erreur dans mon raisonnement.
Merci pour vos lumières![]()
Partager