Adresse mémoire Objet

cs_Taz1984 Messages postés 47 Date d'inscription lundi 20 juillet 2009 Statut Membre Dernière intervention 13 mars 2013 - 13 mars 2013 à 11:27
 Utilisateur anonyme - 13 mars 2013 à 12:50
Bonjour,

J'ai un petit soucis niveau gestion d'adresse d'objet.

Voici un petit exemple :
ClassA a = new ClassA() ;  // son id est par exemple 01.

ClassB b = new ClassB() ; // son id est 02.

Quand je fais:
a = b.clone(); // id de a devient 03 (un nombre aléatoire).

Je voudrais que lorsque je réalise le clone(), l'adresse de a reste la même que lorsque celle ci a été initialisé donc 01.
Elle comporterai le contenu de B sauf que elle garderai la même adresse 01.

Merci d'avance

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
13 mars 2013 à 11:44
Salut,

Si tu gardes la même adresse mémoire, tu gardes les même données.
0
cs_Taz1984 Messages postés 47 Date d'inscription lundi 20 juillet 2009 Statut Membre Dernière intervention 13 mars 2013
13 mars 2013 à 11:52
Merci pour ta réponse.

le problème étant que A va s'alimenter d'une donné de B qui celle ci sera instancié vers la fin .

Ligne 50 : A.setAttribut(B.getAttribut());

Ligne 150 : B.SetAttribut("XXX').

Du coup, le A.setAttribut(B.getAttribut()) ne sera pas alimenté par le 'XXX' mais sera à null !!!
0
Utilisateur anonyme
13 mars 2013 à 12:50
Bonjour

Utilisez plutôt le même objet pour contenir vos "attributs" et passez-le à vos 2 instances de sorte que si un attribut est changé dans le conteneur, les 2 objets en bénéficient. Il n'est pas possible de créer 2 objets distincts avec la même adresse mémoire. Si vous voulez deux variables différentes qui pointent vers le même objet, faites juste b = a.
























T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
Rejoignez-nous