Maison >développement back-end >C++ >Comment initialiser des tableaux d'objets avec des constructeurs en 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) {} };
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) {} };
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!