Maison > développement back-end > C++ > Comment initialiser des tableaux dans des listes d'initialisation de membres en C ?

Comment initialiser des tableaux dans des listes d'initialisation de membres en C ?

Patricia Arquette
Libérer: 2024-11-13 11:52:02
original
730 Les gens l'ont consulté

How to Initialize Arrays in Member Initializer Lists in C  ?

Liste d'initialisation pour les membres du tableau

L'extrait de code fourni ne parvient pas à se compiler en raison d'une tentative d'initialisation d'un tableau dans une liste d'initialisation de membre à l'aide la syntaxe suivante :

`

C() : arr({1,2,3}) <br>{}<br>// ne compile pas non plus<br>C() : arr{1,2,3} <br>{}
`

Cela est dû au fait que les tableaux en C 03 ne peuvent être initialisés qu'avec l'opérateur d'affectation, par ex. int arr[3] = {1,3,4}.

Solutions

Utilisation d'une Struct :
Le code fourni peut être corrigé en utilisant une structure pour envelopper le tableau et en l'initialisant dans le constructeur, comme suit :

`

 int arr[3];<br> ArrayWrapper() : arr{1,2, 3} {}<br>};<br>
`

Utilisation de l'initialisation de liste C 11 :
En C 11, vous pouvez utiliser l'initialisation de liste pour initialiser tableaux dans une liste d'initialisation de membres :

`

 int arr[3];
ArrayWrapper() : arr{1, 2, 3} {}
};
< ;/pre>`

Conformité à la norme :

Le comportement n'est pas explicitement abordé dans la norme C 03, mais c'est un corollaire de la règle selon laquelle l'initialisation globale doit utilisez l'opérateur d'affectation.

C 11 Clarification :
C 11 autorise explicitement l'initialisation de tableaux dans les listes d'initialisation de membres à l'aide de l'initialisation de liste.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal