Maison > développement back-end > C++ > le corps du texte

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

Patricia Arquette
Libérer: 2024-11-13 11:52:02
original
631 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>{}
`

C'est parce 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 structure :
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 des tableaux dans une liste d'initialisation de membre :

`

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

Standard Conformité :

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 agrégée doit utiliser 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!

source:php.cn
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