Maison  >  Article  >  développement back-end  >  Comment initialiser un tableau Const dans un initialiseur de classe en C ?

Comment initialiser un tableau Const dans un initialiseur de classe en C ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-04 04:27:01227parcourir

How to Initialize a Const Array in a Class Initializer in C  ?

Initialiser un tableau Const dans un initialiseur de classe en C

En C , l'initialisation d'un tableau const dans la liste d'initialisation d'une classe peut sembler comme un défi en raison de la restriction du mot-clé const sur la modification en fonction. Cependant, cette tâche est rendue possible avec l'introduction de C 11.

Auparavant, l'initialisation d'un tableau const dans le corps du constructeur n'était pas viable. Les tentatives en ce sens, comme dans l'exemple de code fourni, ont entraîné des erreurs. En effet, les variables const ne peuvent pas être modifiées après l'initialisation.

Cependant, en C 11, une solution est apparue : initialiser le tableau dans la liste d'initialisation du constructeur. Cette approche nous permet de spécifier directement les éléments du tableau :

<code class="cpp">struct a {
    const int b[2];
    // other stuff follows

    // Here's the constructor
    a() :
        b{2, 3}
    {
        // other constructor work
    }
};</code>

Dans cet exemple, le tableau b est initialisé avec les éléments {2, 3}. Cette initialisation garantit que les valeurs de b restent constantes tout au long de la durée de vie de l'objet.

Il est important de noter que différentes instances de la classe a peuvent avoir des valeurs différentes pour b. Cependant, les valeurs d'une instance spécifique restent constantes une fois le constructeur exécuté. Ce comportement distingue ces tableaux des tableaux non const, qui peuvent être modifiés au cours de la vie de l'objet.

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:
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