Fonction echange de valeur

Résolu
krouks212 Messages postés 25 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 1 février 2008 - 13 janv. 2007 à 21:22
lhaut Messages postés 1 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 8 mai 2008 - 8 mai 2008 à 15:10
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

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
13 janv. 2007 à 22:22
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 ();
}
3
lhaut Messages postés 1 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 8 mai 2008
8 mai 2008 à 15:10
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
0