Maison >développement back-end >C++ >Comment initialiser un tableau d'objets dans un constructeur C ?
Initialisation du constructeur de tableau C
L'initialisation d'un tableau d'objets en C peut être difficile, en particulier par rapport aux exemples sans tableau. Considérez l'initialisation non-tableau suivante :
struct Foo { Foo(int x) { /* ... */ } }; struct Bar { Foo foo; Bar() : foo(4) {} };
Dans cet exemple, l'objet Foo dans la structure Bar est correctement initialisé à l'aide de la liste d'initialisation du constructeur. Cependant, l'initialisation d'un tableau d'objets nécessite une approche différente.
struct Foo { Foo(int x) { /* ... */ } }; struct Baz { Foo foo[3]; Baz() : foo[0](4), foo[1](5), foo[2](6) {} };
La syntaxe incorrecte présentée dans l'exemple ci-dessus met en évidence le défi de l'initialisation des éléments du tableau individuellement.
Solution
Malheureusement, selon la réponse fournie, il n'existe aucun moyen standard d'initialiser un tableau d'objets en C au sein du constructeur. Au lieu de cela, un constructeur par défaut doit être utilisé pour les membres du tableau, et toute initialisation nécessaire peut être effectuée après le temps de construction.
Cette limitation est attribuée aux contraintes du processeur intégré utilisé, qui ne prend pas en charge le C moderne. normes. Pour contourner le problème, l'auteur suggère de créer un constructeur par défaut et une méthode init() explicite pour effectuer l'initialisation après la construction. Bien que cette approche ne soit peut-être pas idéale, elle pallie le manque d'initialiseurs de constructeur pour les tableaux.
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!