Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Conception d'une classe [DEBUTANT ] [ Windows / Autre ] (Nixeus)

lundi 14 mai 2007 à 19:06:57 | Conception d'une classe [DEBUTANT ]

Nixeus

Bonjour,


Un problème surement de conception de classe me fait perdre la tete, je vais m'expliquer le plus simple possible:

class A{

               int m_nStatut;
               ....
               ....
               ...
            };


class A; // Aggrégation par pointeur sur ma classe A
class B {

               int Statut;
               A* m_pA;
               ....
               ...
            };

IMPLEMENTATION:

class A{

         A( )
         {

          }
         OnButtonRadio1
         {
               m_nStatut=1;
         }
         OnButtonValider()
         {
               B objetB; // Je créer un objet B, donc dans le constrcuteur de B je devrai recuperer la valeur de m_nStatut et la stocker dans la donnée membre Statut, mais comme je créer mon pointeur sur la classe A dans le constructeur de B, les variables sont "écrasés"
         }

class B {

B( )
{
         m_pA=new A;
         Statut=m_pA->m_nStatut; // ET voila le PROBLEME, il y a une récurence dans le constructeur, et ma variable que je récupere vaut -6767676;
}
~B( )
{   
      delete m_pA;
}



Je créer un objet B, donc dans le constrcuteur de B je devrai recuperer la valeur de m_nStatut et la stocker dans la donnée membre Statut, mais comme je créer mon pointeur sur la classe A dans le constructeur de B, les variables sont "écrasés"

Je cherche ainsi une solution simple a mon problème et sans trop de bidouille car je doit respecter les regles du codage !!

Un gros merci a tous !!!


lundi 14 mai 2007 à 19:19:53 | Re : Conception d'une classe [DEBUTANT ]

emmatopiak

Salut,

Si tu veux que B connaisse la bonne instance de la classe A dans le constructeur de B tu dois passer A en parametre
 et non pas creer un nouvel objet A

Une autruche ne se cuit pas aux petits lardons.

lundi 14 mai 2007 à 19:24:47 | Re : Conception d'une classe [DEBUTANT ]

Nixeus

Je te remercie de ta réponse, as tu un exemple s'il te plait pour mes constructeurs et pour la création de l'objet ?
Merci énormément !


lundi 14 mai 2007 à 20:39:06 | Re : Conception d'une classe [DEBUTANT ]

acx01b

Réponse acceptée !
salut

B( A *a)
{
         m_pA=a;
         Statut=m_pA->m_nStatut;
}


et dans ta classe A:
    B objetB(this);
pour passer l'objet en paramètre au constructeur

lundi 14 mai 2007 à 20:45:15 | Re : Conception d'une classe [DEBUTANT ]

Nixeus

Merci Infiniement, ca fonctionne impec !!!



Cette discussion est classé dans : pa, class, classe, statut, nstatut


Répondre à ce message

Sujets en rapport avec ce message

petit pb de classe~~ [ par lerilcy ] Bijour a tous... J'ai declare une classe "CBloc" comme il faut (enfin je pense)class CBloc{...}et dans le code des procedures (bloc.cpp): le compilate classe et agregation... [ par Clonk ] bonjour,j'utilise plusieurs classes ayant des agregations (sous Borland).Disons en gros que si on a :class personne{private:int age;public:void affich CwinThread urgent [ par langedechu ] Bonjour,J ai un prob avce la classe CWinThread (je vais cracker si je n arrive pas le résoudre).Bon je m'explique : j ai creer une la classe : class c probleme sur les class [ par JRB ] g trouve un cour sur les applications reseaux mais il manque des explications si quelqu'un pourrait me les apporrtais sa serais super je cherche a ajo accéder à une variable globale type "class" ? [ par ilimo ] bonjour,comment accéder à une variable globale type "class" dans un autre fichier ?voici exemple plus détaillé : 1- //fichier CC.h-------------------- Pb de Multi héritage [ par bach58 ] Je veux définir une classe Z qui hérite d'une autre classe A par deux voies différentes :class A{ int a; ....}class X:A ..{..}class Y:A... {...} Classe C++ et pointeurs [ par cybermax62 ] je veux utiliser des pointeurs sur des classes. j'écris mon code comme celui-ci :typedef class widget * pwidget;class widget{public:; char * name_s; Ordre de compilation des classes [ par 9sber ] Comment s'assurer qu'une classe est compilée avant une autre?Mon, pb est le suivant.Je suis sous VC++. J'ai une classe "R" qui hérite d'une classe "A" Class derivée , Template ( POURQUOI ES-CE CI DIFFICILE) ??? [ par nawakator ] J'ai déjà posé cette question, mais je la repose car elle est essentiel pour mon projet!J'ai créer un template permettant de géré une liste chainé de template et héritage [ par cybermax62 ] j'ai un problème de fond dans ma conception. Je voudrais utiliser une classe template de base Singleton avec des classes héritées (plusieurs fois). Le


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.