si tu fais ca :
Code :
- std::vector<vecteur> vect(dim);
|
alors vect est un "tableau" de dim "vecteur"s, pour que ca fonctionne, il te faut un constructeur par défaut (sans paramètre, quoi) ou alors tu peux donner un vecteur qui représentera la valeur par défaut, auquel cas, oui, il te faut un constructeur par recopie.
par exemple :
Code :
- class vecteur
- {
- public :
- float x,y;
- vecteur() : x(.0f), y(.0f) {};
- vecteur(const vecteur &p) : x(p.x), y(p.y) {};
- vecteur(float _x,float _y) : x(_x), y(_y) {};
- virtual ~vecteur() {};
- };
|
te permettra de faire :
Code :
- std::vector<vecteur> vect(dim);
|
qui va te créer "dim" "vecteur"s par défaut (donc initialisés à (0.0f, 0.0f) ) ou encore
Code :
- std::vector<vecteur> vect(dim, vecteur(1.0f, -1.0f));
|
qui crée donc un tableau de "dim" "vecteur"s initialisés avec leur x à 1.0 et leur y à -1.0
Edit : j'imagine que le problème que tu as vient du manque de "const" dans ta version
Message édité par theshockwave le 18-07-2005 à 16:35:07