Bonjour,

Je ne sais plus par où attaquer un problème sur lequel je travaille depuis plusieurs jours maintenant.

Une méthode de mon application écrite en C++ modifie le paramètre de type const string & que je lui passe si j'utilise l'appel à cette méthode comme paramètre d'un autre appel (cout dans les exemples ci-après). Je m'explique:

Prototype de la méthode suspecte:
string Class1::Mth1(const string &s);

J'ai essayé différents appels à Mth1 depuis un autre méthode Mth2 de la classe Class1, avec les résultats suivants:

1:
// s1 est un paramètre de type const string & reçu par Mth2
cout << this->Mth1(s1) << endl; // => modifie le contenu de s1

// alors ce qui suit ne pose pas ce problème :
string str = this->Mth1(s1);

2:
// s2 est une constante déclarée et initialisée juste avant l'implémentation de Mth2 (const string s2 = "toto"
cout << this->Mth1(s2) << endl; // => modifie le contenu de s2

3:
string s3 = "toto";
cout << this->Mth1(s3) << endl; // => modifie le contenu de s3

4:
string s4;
s4 = "toto";
cout << this->Mth1(s4) << endl; // => Ok, s4 n'est pas modifié

Quelqu'un aurait-il une piste?

Merci d'avance.