Fonction echange de valeur [Résolu]

Signaler
Messages postés
25
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
1 février 2008
-
Messages postés
1
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
8 mai 2008
-
svp, je cherche a faire une fonction qui permet d'echanger 2 variables.

jai un exmple qui est faut, je veux savoir ou se trouve l'erreur

void swap(Object o1,Object o2)
{
Object temp;
temp=o1;
o1=o2;
o2=temp;}

merci d'avance

2 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Salut:

Je pense que tu dois passer par la méthode clone () de la classe Object.

De plus les classes des instances que tu vas passer en paramètre doivent implémenter l'interface Cloneable et redéfinir la méthode clone ().

void swap (Object a, Object b) {
   c = a.clone ();
   a = b.clone ();
   b = c.clone ();
}
Messages postés
1
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
8 mai 2008

tu ne peux pas faire

void swap(Object o1,Object o2) {
    Object temp;
    temp=o1;
    o1=o2;
    o2=temp;
}

main

void swap(Object o1,Object o2) {
    Object temp;
    temp=o1.clone();                     // mets une copie de o1 dans temp;
    o1=o2.clone();                        // mets une copie de o2 dans 01;
    o2=temp;                                // fais pointer o2 sur temp (soit la premiere valeur de 01).
}

attention tu dois redefinir clone() qui est protected dans la classe Object