Passage de paramètre par référence
Bonjour a tous!
Une petite question qui me turlupine, pour l'illustrer prenons un exemple bateau:
Code:
1 2 3 4 5 6 7
| void Exchange( AnsiString &s1, AnsiString &s2 )
{
AnsiString tmp ;
tmp = s1;
s1 = s2;
s2 = tmp;
} |
Je veux maintenant échanger le contenu de 2 TEdits :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Exchange( Edit1->Text, Edit2->Text ) ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
AnsiString tmp1 = Edit1->Text ;
AnsiString tmp2 = Edit2->Text ;
Exchange( tmp1, tmp2 ) ;
Edit1->Text = tmp1 ;
Edit2->Text = tmp2 ;
} |
Pourquoi est ce que la première version ne marche pas, et qu'en passant par des variables temporaires (2ème version) ça fonctionne??