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

Comment initialiser des tableaux d'objets avec des constructeurs en C ?

Mary-Kate Olsen
Libérer: 2024-11-09 05:23:02
original
775 Les gens l'ont consulté

How to Initialize Arrays of Objects with Constructors in C  ?

C : Initialiseurs de constructeur pour les tableaux

En C, initialiser un tableau d'objets peut être un défi. Pour les scénarios sans tableau, on peut utiliser la syntaxe du constructeur comme suit :

struct Foo {
    Foo(int x) { /* ... */ }
};

struct Bar {
    Foo foo;

    Bar() : foo(4) {}
};
Copier après la connexion

Cependant, le problème se pose lorsqu'il s'agit de tableaux :

struct Foo {
    Foo(int x) { /* ... */ }
};

struct Baz {
    Foo foo[3];

    // Incorrect syntax
    Baz() : foo[0](4), foo[1](5), foo[2](6) {}
};
Copier après la connexion

Malheureusement, en C (avant plus itérations récentes du langage), il n'existe pas de méthode simple pour initialiser les membres d'un tableau à l'aide de constructeurs. La limitation provient de l'exigence de constructeurs par défaut pour les membres du tableau, qui sont automatiquement invoqués lors de l'initialisation du tableau. Ensuite, toute initialisation supplémentaire au sein du constructeur se poursuit. Pour les systèmes embarqués dépourvus de fonctionnalités STL, une solution de contournement implique un constructeur par défaut ainsi qu'une méthode init() explicite appelable après la construction, évitant ainsi le besoin d'initialiseurs.

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