Rechercher : dans
Par :

Classe C++

Dernière réponse le 9 jan 2009 à 15:28:01 Vivi, le 15 jui 2005 à 15:05:40 
 Signaler ce message aux modérateurs

Bonjour,

J'ai besoin de quelques conseils en programmation C++ orienté objet.

J'ai une classe Param, qui contient des données que je souhaite initialiser une fois avec certaine valeur. bon la, il n'y a pas de problème.

Ensuite, J'ai d'autres classes qui utilisent les données de la classe Param, juste ne lecture.

Et je souhaiterai, que toutes ces classes utilisent les données de Param, mais que si je modifie les données de Param, cela soit pris en compte dans toutes les autres classes.
En fait, il ne faudrait qu'une instance de Param que toutes les classes utiliserait, mais je ne sais pas comment faire ceci, si c'est possible.


Je vous remercie de votre aide.

Meilleures réponses pour « Classe C++ » dans :
Adresse IP Voir Sommaire Qu'est-ce qu'une adresse IP Déchiffrement d'une adresse IP Adresses particulières Les classes de réseaux (obsolète) Classe A Classe B Classe C Attribution des adresses IP Adresses IP réservées Masques de sous-réseau Interet...
Le mot-clé static ou les attributs et méthodes de classe en POO Voir(NOTE: Cet article explique la signification du mot-clé static au sein d'une classe. La signification de "static" en C n'a par exemple rien à voir.) Vous êtes débutant en programmation orientée objet. En Java, en C++...ou que sais-je encore,...
Les fonctions en C++ : surcharge et paramètres par défaut. VoirLes fonctions en C++ : surcharge et paramètres par défaut. 1. La surcharge de fonctions et méthodes de classes, dont le constructeur 2. Utilisation des paramètres par défaut En C++, une même fonction ou méthode de classe peut être...
Les templates en C++ VoirIntroduction Avantages Inconvénients Quand utiliser des templates ? Que dois-je mettre dans les .hpp et dans les .cpp ? Convention de notations Quelques templates célèbres STL BGL Premiers pas Spécifications de templates Template par...
Les classes en langage C++ VoirLa notion d'objet Le langage C est un langage procédural, c'est-à-dire que c'est un langage permettant de définir des données grâce à des variables, et des traitements grâce aux fonctions. L'apport principal du langage C++ par rapport au...
Les objets en langage C++ VoirLa création d'objets En C++, il existe deux façons de créer des objets, c'est-à-dire d'instancier une classe : de façon statique de façon dynamique La création statique La création statique d'objets consiste à créer un objet en lui affectant un...
Langage C++ - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C++ sont typées, c'est-à-dire que les données contenues dans...

1

Luffy =), le 15 jui 2005 à 15:19:48

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 :

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 =) Le Parisien, il vaut mieux l'avoir en journal !!! :-P

Répondre à Luffy =)

2

Vivi, le 15 jui 2005 à 16:19:30

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,

Répondre à Vivi

3

Luffy =), le 15 jui 2005 à 16:51:17

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 =) Le Parisien, il vaut mieux l'avoir en journal !!! :-P

Répondre à Luffy =)

4

mathieu, le 10 fév 2007 à 15:23:49

Salut, a propos des classes, j'ai visual c++ 2005 et je n'arrive pas a integrer de classes a mon prg:
#include <class> ne marche pas
et #include <class.h> ne marche pas non plus,
j'aimerais savoir comment faire.
Merci d'avance

Répondre à mathieu

5

 zmatz, le 9 jan 2009 à 15:28:01

Salut
Essaye ça:
#include "class.h"

;)

Répondre à zmatz
Collection CommentÇaMarche.net