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.
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 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;
};