Initialisation des champs dans les constructeurs: différences entre la liste des initialiseurs et le corps du constructeur
En C, les constructeurs fournissent un moyen idéal pour initialiser les champs d'instance pendant la création d'objets. Il existe deux méthodes principales pour l'initialisation de champ dans les constructeurs: la liste d'initialiseur et le corps du constructeur. Initialisation des champs avant l'exécution du corps du constructeur. Cette méthode est généralement préférée en raison de sa syntaxe et de sa clarté concises.
Body constructeur
Thing(int _foo, int _bar): member1(_foo), member2(_bar) {}
Le corps du constructeur utilise des instructions d'attribution pour initialiser les champs dans le corps de la fonction. Cette méthode est moins courante, car elle nécessite plus de lignes de code et peut être sujette à des erreurs si les instructions d'attribution ne sont pas exécutées dans l'ordre souhaité.
Différences clés
Thing(int _foo, int _bar) { member1 = _foo; member2 = _bar; }
Initialisation par défaut:
lors de l'utilisation de la liste initiale, des fiels non-pod comportement non défini. En revanche, le corps du constructeur initialise les champs à leurs valeurs par défaut si aucune affectation explicite n'est fournie.ordre d'initialisation:
La liste des initialités initialise les champs avant l'exécution du corps du constructeur. Cela garantit que les champs sont initialisés dans l'ordre correct, même si l'ordre des instructions d'attribution dans le corps du constructeur change.Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3