Problème de conversion lors d'une insertion d'un objet à partir d'une liste vers un vecteur
Bonjour,
Dans la fonction ci-dessous, j'obtiens l'erreur suivante à la compilation :
"error C2664: 'std::_Vector_iterator<_Myvec> std::vector<_Ty>::insert(std::_Vector_const_iterator<_Myvec>,_Ty &&)' : impossible de convertir le paramètre 2 de 'Employe' en 'Cadre &&'"
Je suis allé voir dans le FAQ et les tutos si je n'y trouvais pas rapidement une réponse mais sans succès.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| void Promotion(list<Employe> &tabEmployeL, vector<Cadre> &tabCadreV){
vector<Cadre>::iterator iterV;
list<Employe>::iterator itMax1E;
list<Employe>::iterator itMax2E;
itMax1E=max_element(tabEmployeL.begin(),tabEmployeL.end(),cmpAgeEmployes);
cout<<"LES 2 employés les plus Agés à promouvoir sont :"<<endl;
itMax1E->affiche();
tabCadreV.insert(tabCadreV.begin(),itMax1E);
tabEmployeL.erase(itMax1E);
itMax2E=max_element(tabEmployeL.begin(),tabEmployeL.end(),cmpAgeEmployes);
itMax2E->affiche();
tabCadreV.insert(tabCadreV.begin(),itMax2E);
tabEmployeL.erase(itMax2E);
} |
voici les classes Employe et Cadre qui héritent toutes deux de la classe mère Salarie et les paramètres Age sont présents dans les 2.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| class Salarie
{
public:
void saisie();
void affiche();
protected:
string Nom;
int Salaire;
};
class Employe : public Salarie
{
public:
void saisie();
void affiche();
bool operator < (Employe b);
int getAge();
private:
int Age;
friend class Actionnaire;
};
class Cadre : public Salarie
{
public:
void saisie();
void affiche();
private:
int Age;
friend class Actionnaire;
}; |