IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[Débutant] Implémenter une classe d'association ?


Sujet :

C++

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 15
    Points
    15
    Par défaut [Débutant] Implémenter une classe d'association ?
    Je suis peut-être mauvais dans l'utilisation de la fonction recherche (google, faq, forums) mais je ne trouve nulle part...

    Comment implémenter une classe d'association???
    Je lui rajoute des attributs ; une variable pointeur sur chaque instance que je souhaite associer ?

    C'est assez urgent (fin de journée max) et je commence a paniquer.. :-/ jsuis tout seulllllll et personne ne code en objet là où je travaille... donc personne pour m'aider

    Merci d'avance!

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2006
    Messages : 58
    Points : 74
    Points
    74
    Par défaut
    Tout dépend de ce que tu souhaites associer. Un pointeur (mieux encore, un smart pointer) fonctionnera pour associer un élément. Si tu souhaites en associer plusieurs, il faudra te tourner vers des conteneurs, par exemple la STL (vector, list, map, etc).

  3. #3
    Membre à l'essai
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Je code une appli de gestion de stock.
    Il y a des lots auquels on peut définir des annotations prédéfinies (un code d'annotation + un libellé d'annotation).
    Mais il doit être possible d'ajouter à chaque couple lot/annotation un commentaire libre.
    C'est ici qu'intervient ma classe CommentaireLotAnno, possédant un char* comm en attribut.

    Je veux donc tout bêtement relier un lot, une annotation, et mettre un commentaire libre sur ce lien

  4. #4
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2006
    Messages : 58
    Points : 74
    Points
    74
    Par défaut
    D'une part, en C++ je te conseille d'utiliser des string plutot que des char*, c'est plus simple et plus propre.

    Ensuite, ca dépend dans quel sens tu veux accéder aux objets. On peut imaginer que chaque lot ait des références (une liste) vers les annotations associées, et que l'annotation stocke le commentaire... Ou bien l'inverse : annotations -> lots -> commentaires. Tout dépend des accès dont tu auras besoin.

  5. #5
    Membre à l'essai
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    L'utilisation de char* est imposée, car je ne code qu'une extension à une appli existante, qui utilise les char*

    Ensuite, j'avais pensé à tout stocker dans CommLotAnno... 3 attributs : leLot, l_anno, leComm.

    C'est une mauvaise idée?

    En ce qui concerne les acces, j'aurai besoin de ces infos pour les retranscrire dans un fichier texte. Je pense donc créer quelque part un CommLotAnno*(*) qui sera parcouru par le fileManager pour récupérer tous les commLotAnno créés et les retranscrire... En bref, j'ai juste besoin de récupérer tous les trios d'attributs au moment de la sauvegarde sur fichier.

    Berk c'est pas propre je sais mais l'appli est destinée à un pocketPC sans base de données ni wifi... donc on stocke les données sur fichiers texte qui sont transmis (edit : via le socle du pocketPC) à l'appli mère (sur PC) qui va parser ces fichiers et réellement stocker ces données dans une base de données.

    Je me trouve pas clair... mais j'ai du mal a m'exprimer.. désolé :s

  6. #6
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2006
    Messages : 58
    Points : 74
    Points
    74
    Par défaut
    Ta première idée semble la plus simple en effet... à condition que les objets Lot et Annotation ne soient pas trop volumineux et dupliqués, auquel cas il vaudra mieux utiliser des pointeurs.

  7. #7
    Membre à l'essai
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Pour éviter les éditions intempestives, je fais un doublon, désolé.

    Je pense stocker dans lot le fameux CommLotAnno**

  8. #8
    Membre à l'essai
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Et pour répondre a touco :

    Les objets ne sont pas volumineux : quasiment aucun attribut car toutes les infos sont accessibles dans des tableaux dynamiques bizaroïdes.
    Mon maïtre de stage n'a pas voulu entrer dans les détails, je sais juste que je dispose d'un pointeur "générique" pour chaque fichier texte, que ce pointeur pointe sur des tableaux dynamiques dans lesquels sont chargées toutes les données des fichiers texte.
    Je dispose ensuite d'un pointeur pour chaque ligne de chaque fichier, et des index de champs déclarés en constantes. C'est à dire que pour obtenir le poids de tel lot de tel fichier, il me faut le pointeur du fichier référençant les lots, le pointeur de la ligne du lot, et l'index du champs pour le poids... ca me semble tres barbare, mais selon lui ca optimise la consommation des ressources systeme)

    Les fonctions existent déjà, je m'en sers pour obtenir nimporte quelle info...


    Bref peu importe le type de commLotAnno (pointeurs ou par valeur), tu as confirmer ma premiere idée jsuis content, mici beaucoup ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Implémenter une "classe-Association".
    Par oxyaxion dans le forum Diagrammes de Classes
    Réponses: 2
    Dernier message: 02/06/2011, 18h28
  2. [JSP][Tomcat][Débutant] Utiliser une classe dans du JSP
    Par mavina dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 09/05/2007, 11h50
  3. Probleme avec une classe d'association
    Par bassim dans le forum UML
    Réponses: 7
    Dernier message: 18/04/2007, 14h42
  4. Retrouver qui a implémenté une class de TObject.
    Par billbocquet dans le forum Langage
    Réponses: 2
    Dernier message: 05/05/2006, 20h33
  5. [Débutant]Passer une classe abstraite en paramètre
    Par Invité dans le forum Débuter
    Réponses: 2
    Dernier message: 06/01/2006, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo