Bonjour à tous,
Je viens à vous car j'ai un petit problème, je vous explique la chose : j'ai créé une classe FORME qui initialise tout ses attributs à des valeurs aléatoires dans son constructeur par défaut :
FORME::FORME()
{
if(!myImage.LoadFromFile("avion.bmp")) // Si le chargement a échoué
{
cerr<<"Error during import avion"<<endl; // On affiche l'erreur
}
else // Si le chargement de l'image a réussi
{
myDX = Randomizer::Random(1,5);
myDY = Randomizer::Random(1,5);
myImage.CreateMaskFromColor(Color::Black);
mySprite.SetImage(myImage);
mySprite.SetPosition(Randomizer::Random(100,500),Randomizer::Random(100,500));
}
}
J'ai ensuite créé une seconde classe qui contient toutes ces formes dans un vector :
class TTES_LES_FORMES
{
public:
...
private:
std::vector<FORME> vect_f;
};
Le constructeur de cette seconde classe me permet de définir le nombre de "FORME" dans ce vector en faisant simplement
TTES_LES_FORMES formes(nb_cibles);
dans le main.
Venons en au problème maintenant, j'ai essayé de faire un resize(3) de ce vector cependant la fonction resize utilise le constructeur par défaut pour créer la première forme et ensuite le constructeur de copie pour toutes les autres (d'après ce que j'ai testé et compris en fouillant un peu sur le net
). Je me retrouve donc avec trois formes qui ont les mêmes attributs alors que j'aimerais qu'ils soient différents pour chaque forme.
Une petite idée de comment faire sans les pointeurs?
Merci de m'avoir lu.