Association entre classe

TuxOnline Messages postés 24 Date d'inscription samedi 11 février 2006 Statut Membre Dernière intervention 21 janvier 2007 - 17 mai 2006 à 20:26
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 18 mai 2006 à 15:38
Bonjour, j'aurai besoin d'un pti coup de main pour comprendre.
Voici une sorte lol de modelisation UML. j'ai deux classes entreprise et interimaire. une classe association calendrier.
j'exprime le fait que des intérimaire travaille dans des entreprises pendant des dates données.

Entreprise--1..*--------------*interimaire
                                  |
                                  |
                           Calendrier
                         attributs:
                         date_debut
                         date_fin

je sais que dans ma classe association calendrier je dois mettre un pointeur Entreprise et un interimaire. mais je ne comprend pas comment acceder au date de debut et de fin par qui concerne les interimaires.
Dans entreprise j'ai un tableau de pointeur interimaire. Je dois donc passer par la classe interimeraire chercher le pointeur Calendrier et ainsi pouvoir utiliser les attributs ???
Merci pour votre aide.

3 réponses

RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
18 mai 2006 à 13:47
salut,

je suis pas un pro en c++, j'en fais que depuis 2 mois, mais si je peux t'aider.

ça représente quoi calendrier ?? c  une référence pour  les 2 partis, du genre le calendrier annuel ??

Si c ça, moi je dirai que c plutôt, les classes entreprise et intérimaire qui doivent avoir chacun un pointeur sur le calendrier, et dans calendrier les attribut en public :

Sinon, si Calendrier c'est la période du contrat, je dirais que Calendrier doit hériter de "entreprise" et "intérimaire", cf héritage multiple, et là, les attributs de Calendrier peuvent être mis en protected : et seront accessibles par les deux classes... Mais là ça implique que Calendrier ne peut exister que si un couple Entreprise et Interimaire existe

voilà ce que je peux dire, si ça peut faire avancer
0
TuxOnline Messages postés 24 Date d'inscription samedi 11 février 2006 Statut Membre Dernière intervention 21 janvier 2007
18 mai 2006 à 14:05
enfet je dois traduire ce diagramme en c++.
Ce que je comprend pas c'est comment on se sert de la classe association.. il faut un constructeur où on lui envoie les adresses des pointeurs entreprise et interimaire. Et ds entreprise et interimaire il faut les operateur de surcharge = . Mais je comprend pas comment on dois faire pour acceder au attributs quand je connait un intérimaire par exemple. et je ne trouve pas d'exemple sur google de ce genre de programmation. snifff
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
18 mai 2006 à 15:38
Je pense que calendrier est une classe indépendante, mais elle doit déclarée la classe entreprise en classe amie, car je pense qu'il n'y a qu'elle qui peut fixer les date de début et de fin, l'intérimaire peut juste y acceder du genre :


classe Entreprise;
classe Interimaire;

classe Calendrier{
   friend Entreprise;
   protected :
   DATE date_debut;
   DATE date_fin;
   protected :                  // accessible que part les classes dérivées et classe amies Entreprise
   void SetDateDebut(DATE Deb):date_debut(Deb){};
    void SetDateFin(DATE Fin):date_fin(Fin);
   public :                       // accessible par les interimaire
   DATE GetDateDebut()(return date_debut;}
   DATE GetDateFin(){return date_fin};
}
classe Entreprise{
  Calendrier * C;
   Interimaire * ListeInterim;
   DATE m_debut_contrat;
   DATE m_fin_contrat;

 };
classe Interimaire{
    Calendrier * C;
   Entreprise* Entreprise;
   DATE m_debut_contrat;
   DATE m_fin_contrat;
   }
};

int main(){
   Calendrier C;
   Entreprise Inc();
   Interimaire Int();
   Int.C=Inc.C=&C;
   (Inc.C)->SetDateDebut("18/05/2006");
   Int.m_debut_contrat=(Int.C)->GetDateDebut();
}

Moi, c'est comme ça que je verrais la chose, je me rend compte que je ne suis pas très clair non plus sur la notion d'association, mais c comme ça que je l'aurai vu..
Une classe calendrier indépendante pointée par les classes qui l'utilisent, ils y accèdent par le pointeurs et les fonction amies ont accès aux attributs privés et protected alors que les autre, seulement aux public
Si t'as la veritable solution, ça me dit bien que tu la mette ici, ça sera très instructif je pense.PS: Fait attention, si tu surcharge l'opérateur , il vaut mieux faire aussi le constructeur par recopie, comme ça on peut utiliser l'opérateur dans tous les cas, c pour faire les chose propres.:o)
0
Rejoignez-nous