Passage de pointeur de vector en paramètre
Bonjour,
J'ai un soucis de passage de pointeur de vector en paramètre.
Dans mon main, je déclare un vector <FIFO> fifo (nb_fifo); ainsi qu'un vector <Feeder *> fee(nb_fifo); comme constructeurs.
Ma classe Feeder permet, entre autre, de remplir une FIFO . J'aimerai donc passer comme argument à la méthode qui permet de remplir la fifo fifo(i).
Voici mon code :
Main :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| ...
#include "feeder.h"
#include "fifo.h"
void main()
{ ...
vector <FIFO> fifo (nb_fifo);
vector <Feeder *> fee(nb_fifo);
for(int i = 0;i<nb_fifo;i++)
fee[i] = new Feeder(...,&fifo[i]);//Je lance plusieurs feeder car il y a plusieurs fifos a remplir
fee[i]->remplis_fifo();//dans remplis_fifo() se passe des actions tels this->fifo.Empiler("blabla");
...
} |
Classe Feeder :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| #include "fifo.h"
class Feeder
{
public:
Feeder(..., FIFO *F)
{
...
f=F;
}
...
FIFO *f;
...
} |
Et mon programme plante avec l'erreur :
error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations sur la disposition incohérentes dans des types dupliqués (Feeder) : (0x0200004f).
LE problème vient de la facon dont je manipule le pointeur sur vector fifo() je pense puisque quand je passe ma fifo comme paramètre par valeur (c'est à dire fee[i] = new Feeder(...,fifo[i]); dans le main et Feeder(..., FIFO F);FIFO f; dans la classe Feeder, cela fonctionne.
Si je n'ai pas été assez précis sur un point, demandez moi !:oops:
Help :roll: