Envoyé par
dalfab
Relis mes remarques, j'avais bien vu la variable
dans la fonction. Mais il n'existe aucune magie qui transfère la valeur d'une variable locale à une fonction dans une autre variable ayant le même nom.
Bonjour,
Je pense avoir compris. J'utilise peu le return, donc ...
Oui en effet, si je ne passe pas la variable somme en copie (par références) c'est impossible.
J'ai corrigé mais pas contre maintenant je n'ai pas de référence par rapport à la définition/déclaration pour la fonction "sommeValRet" (message d'erreur lors d'une recherche par références croisées : le symbole "sommeValRet" n'est pas référencé), mais je ne comprends pas pour quelle raison.
appel pour la list
sommeValRet<list<boule>,list<boule>::iterator, char, int>(L, itl ,'R', som);
appel pour le vector
sommeValRet<vector<boule>,vector<boule>::iterator, char, int>(V, itv ,'B', som);
template définition/déclaration
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| template<class X, class Y, class Z, class R> int sommeValRet(X tabRobot1ou2, Y iter ,Z RB, R som) {
Y it;
int SommeVal = 0;
som=0;
// V RB;
for (it = tabRobot1ou2.begin(); it!=tabRobot1ou2.end(); it++){
if (it->getCouleur()==RB)
{
SommeVal=SommeVal+it->getVal();
}
else{
SommeVal=SommeVal-it->getVal();
}
}
som=SommeVal;
return som;
} |
Partager