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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
 
};