Construction et tableau d'objets

Résolu
Profil bloqué - 3 août 2015 à 21:02
 Profil bloqué - 6 août 2015 à 01:25
Bonsoir,

je viens vous exposer un problème sur lequel je bute et que je n'arrive pas à résoudre.

Le problème est assez simple à expliquer, je dispose de deux classes :
:: Number
:: Grid

Grid est une classe qui est a notamment comme attribut un tableau statique à 7 éléments de type Number.

Je suis parvenu à créer un constructeur pour Number en utilisant la méthode de la liste d'utilisation. En revanche, je ne sais pas comment faire pour créer le constructeur de ma classe Grid à cause de ce tableau...

J'en profite pour vous faire part de mon second problème auquel j'ai fait face dans un autre programme, pareil lors de la création du constructeur de ma classe. Ma classe était doté d'un vector de type double, et je ne suis pas parvenu à créer un constructeur pour ma classe.

La question finalement est la suivante : comment créer un constructeur pour une classe qui a comme attribut un tableau statique et/ou un tableau dynamique ?

Merci à ceux et celles qui me liront, et à ceux et celles qui me répondront.

2 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
4 août 2015 à 23:08
Bonjour.

En C++ classique ce n'est pas possible. Il te faut utiliser une fonction annexe pour la mettre dans ta liste d'initalisation.
En C++11, c'est géré nativement.

std::vector<Number> initTab()
{
  std::vector<Number> tab;
  tab.push_back(Number(10));
// ....
  return tab;
}

class Grid
{
public:
// En C++03
  Grid()
 : _tab(initTab()), _i(42)
 {
 }

// En C++11
  Grid()
  : _tab({Number(10), Number(38)}), _i(42)
 {
 }

private:
 std::vector<Number> _tab;
 int _i;
};

0
Profil bloqué
6 août 2015 à 01:25
Bonsoir,

merci beaucoup pour ta réponse complète ! J'ai opté pour l'ajout d'une fonction d'initialisation. Résolu !
0
Rejoignez-nous