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 :Classe Feeder :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"); ... }
Et mon programme plante avec l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; ... }
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 !![]()
Help![]()
Partager