Maison >développement back-end >C++ >Les membres de la structure C sont-ils initialisés à zéro par défaut ?
Il n'est pas garanti que les valeurs des membres non initialisés d'une structure C soient 0. Pour les initialiser explicitement membres, utilisez une liste d'initialisation :
struct Snapshot { double x; int y; }; Snapshot s = {0, 0}; // Explicitly initialize members to 0
Vous pouvez également initialiser la structure en utilisant le {} syntaxe :
Snapshot s = {}; // Value initializes all members to 0
Notez que l'utilisation de {} pour l'initialisation de la valeur fonctionne de manière récursive, même pour les structures imbriquées :
struct Parent { Snapshot s; }; Parent p = {}; // Value initializes both p and p.s to 0
Si la structure a des constructeurs, vous devez explicitement initialiser les membres de ceux-ci constructeurs :
struct Snapshot { int x; double y; Snapshot(): x(0), y(0) { } // Initialize members in the constructor };
Vous pouvez également utiliser la syntaxe d'initialisation des valeurs par défaut x(), y() pour ignorer le type et attribuez une valeur initiale appropriée (0 pour int, 0,0 pour double, etc.) :
Snapshot(): x(), y() { } // Value initializes both x and y to 0
Cela peut être particulièrement utile pour les modèles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!