1 pièce(s) jointe(s)
Erreur sur le niveau d'indirection et la conversion dans un template
Bonjour,
J'obtiens les messages d'erreurs suivants à la compilation.
Erreur 1 error C2446: '=='*: pas de conversion de 'const char []' en 'int'
Erreur 2 error C2040: '=='*: les niveaux d'indirection de 'int' et de 'const char []' sont différents
Le code complet est en annexe.
Est-ce que quelqu'un peut m'aider ?
Merci d'avance.
Suite au template
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| template<class T, class U, class V> int somme(T robot, U iter ,V RB) {
U it;
int som = 0;
// V RB;
for (it = robot.begin(); it!=robot.end(); it++){
if (it->getCouleur()==RB)
{
som=som+it->getVal();
}
else{
som=som-it->getVal();
}
}
return som;
} |
à l'opérateur
Code:
1 2 3 4 5 6 7 8 9
| bool boule::operator==(boule Robot1){
if (couleur==Robot1.getCouleur())
{
return true;
} else
{
return 0;
}
} |
faisant usage de la classe
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class boule {
private:
int numero;
char couleur;
public:
void saisie();
void affiche();
bool operator==(boule);
int getVal(){
return numero;
};
char getCouleur(){
return couleur;
}
}; |
et à son appel
Code:
1 2
| somme<list<boule>,list<boule>::iterator,const char[2]>(L,itl,"R");
somme<vector<boule>,vector<boule>::iterator,const char[2]>(V,itv,"B"); |