4 réponses
Luffy =)
Messages postés
365
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
19 mai 2006
110
15 juil. 2005 à 15:19
15 juil. 2005 à 15:19
Salut vivi !
Alors, pour que plusieurs classes utilisent une même instance d'une autre classe, il suffit de leur passer le pointeur de l'instance aux autres classes. Explication :
tu instancies d'abord la classe Param.
Ensuite, en instanciant les autres, tu leur passe le pointeur de Param.
Exemple par le code :
dans les classes ClasseA et ClasseB tu auras un pointeur vers Param* que tu initialiseras avec le pointeur param passé au constructeur.
Pour les accès en lecture des variables, il faut bien utiliser des accesseurs et déclarer tes variables privées.
Voilà, j'espère avoir été clair.
++ bon courage =)
Alors, pour que plusieurs classes utilisent une même instance d'une autre classe, il suffit de leur passer le pointeur de l'instance aux autres classes. Explication :
tu instancies d'abord la classe Param.
Ensuite, en instanciant les autres, tu leur passe le pointeur de Param.
Exemple par le code :
Param *param = new Param(); ClasseA *a=new ClasseA(param); ClasseB *b=new ClasseB(param);
dans les classes ClasseA et ClasseB tu auras un pointeur vers Param* que tu initialiseras avec le pointeur param passé au constructeur.
Pour les accès en lecture des variables, il faut bien utiliser des accesseurs et déclarer tes variables privées.
Voilà, j'espère avoir été clair.
++ bon courage =)
Bonjour,
merci pour la réponse.
Cela marche aussi si dans la ClasseA, je declare une ClasseC qui utilise aussi Param ???
et si je ne declare pas ClasseA et ClasseB comme pointeurs, c'est toujours valable ?
Merci,
merci pour la réponse.
Cela marche aussi si dans la ClasseA, je declare une ClasseC qui utilise aussi Param ???
et si je ne declare pas ClasseA et ClasseB comme pointeurs, c'est toujours valable ?
Merci,
Luffy =)
Messages postés
365
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
19 mai 2006
110
15 juil. 2005 à 16:51
15 juil. 2005 à 16:51
Cela marche aussi si dans la ClasseA, je declare une ClasseC qui utilise aussi Param
Bien sûr ! en fait, tu auras dans ta mémoire un espace alloué pour l'objet param, et tu ne fais que passer cette adresse à toute tes classes.
Elles utiliseront donc la même instance. Mais attention à ne pas l'utiliser partout en le passant à tout va. Il y a peut-être un problème d'analyse là. Mais je ne connais pas ton projet, donc tu n'as peut-être pas le choix.
et si je ne declare pas ClasseA et ClasseB comme pointeurs, c'est toujours valable ?
je pense que oui. je ne m'étais jamais posé la question mais je ne vois pas pourquoi ça ne marcherait pas. le compilo va allouer l'espace nécessaire pour une instance de Param dans l'objet, donc oui, ça devrait marcher.
++ Bon week-end =)
Bien sûr ! en fait, tu auras dans ta mémoire un espace alloué pour l'objet param, et tu ne fais que passer cette adresse à toute tes classes.
Elles utiliseront donc la même instance. Mais attention à ne pas l'utiliser partout en le passant à tout va. Il y a peut-être un problème d'analyse là. Mais je ne connais pas ton projet, donc tu n'as peut-être pas le choix.
et si je ne declare pas ClasseA et ClasseB comme pointeurs, c'est toujours valable ?
je pense que oui. je ne m'étais jamais posé la question mais je ne vois pas pourquoi ça ne marcherait pas. le compilo va allouer l'espace nécessaire pour une instance de Param dans l'objet, donc oui, ça devrait marcher.
++ Bon week-end =)