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 :

implémentation par défaut


Sujet :

C++

  1. #1
    Membre habitué Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Points : 154
    Points
    154
    Par défaut implémentation par défaut
    Dans une bibliothéque j'ai une classe A dont dérrive des classe A1, A2, A3, A4,....
    dans une autre classe B j'ai des pointeurs sur A1, A2, A3, A4, ...
    C'est pointeurs sont initialisés hors de ma bibliothèque par les l'utilisateurs de ma bibliothèque.
    Souvent ils les initialisent par des classes A1', A2', A3', A4',... qui dérivent respectivement de A1, A2, A3, A4, ....
    Par contre ils initialisent que les celles qu'ils utilisent. Donc dans ma classe B je me retouve avec des pointeurs nuls. Or quand j'en ai besoin mon programe crash. Il faut donc que je definisse une classe A0 qui ai un comportement par défaut.
    Or problème comment faire cela proprement ?
    Une autre donnée données importantes c'est que mes pointeurs A1, A2, A3, A4, ... sont des données public (pas très POO tout ça ) et que je ne peut pas me permettre le moindre impact sur les appli clientes (une soixantaines environ).

    solution 1: A0 dérive de A et dans ma classe B je ne met que des pointeurs sur A, au lieu de pointeurs sur A1, A2, A3, A4,... et je définie quelques part un pointeur sur A0 et créer un A0 et j'affecte tous les pointeurs A1, A2 , A3, A4,... sur mon A0. Le problème de cette solution c'est que après les utilisateur peuvent m'initialiser un pointeur de A2 avec une instance de A2, ce que je ne veut pas.

    solution 2: je créer des classes A01, A02, A03, A04, .... Ces classes dérivant de A1, A2, A3, A4,.... Je laisse mes pointeurs dans B sur des A1, A2, A3, A4 et je les initialises avec des instance de A01, A02, A03, A04,...
    Le problème de cette solution est que les A0x auront toutes le même comportement, mais je serait tout de même obligé de les implémenter toute. En plus il faut que je garde des pointeurs sur les A0x car si les utilisateurs les écrases il faut que je les libère tout de même en fin de prog.

    solution 3: ici votre solution.

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Est-ce que cela a du sens de stocker des pointeurs différents?
    Pourquoi laisser les clients positionner des pointeurs qui feraient peut-être mieux d'être cachés ?
    B n'aurait pas trop de rôles à assumer ?

    Difficile de parler dans le cas général. Perso je serai très géné par avoir 4 pointeurs, qui offrent des vues à 180° sur un même objet, manipulés ensemble.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Membre habitué Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Points : 154
    Points
    154
    Par défaut
    Citation Envoyé par Luc Hermitte
    Est-ce que cela a du sens de stocker des pointeurs différents?
    oui, A1, A2, .... ont chacun un rôle bien déterminer.

    Pourquoi laisser les clients positionner des pointeurs qui feraient peut-être mieux d'être cachés ?
    Super d'accord, mais j'hérite de la situation telle qu'elle est. Et comme je l'ai desles impacts sur les clients sont impossible
    B n'aurait pas trop de rôles à assumer ?
    Juste du dispatching de requête vers les objets adapté pour les traiter

    Difficile de parler dans le cas général. Perso je serai très géné par avoir 4 pointeurs, qui offrent des vues à 180° sur un même objet, manipulés ensemble.
    en fait il y en a 8 !
    Qu'entend tu par des vue a 180° ?
    merci de ton aide tout de même!

Discussions similaires

  1. Réponses: 17
    Dernier message: 29/07/2009, 17h12
  2. [TListBox] Selection par défaut
    Par Nuts07 dans le forum Composants VCL
    Réponses: 8
    Dernier message: 12/05/2003, 10h00
  3. Couleur de sélection par défaut
    Par sicard_51 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 20/04/2003, 23h35
  4. [SWING][FONT] choisir la police par défaut
    Par narmataru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/02/2003, 10h35
  5. Retour au mode texte par défaut
    Par coca dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 12/12/2002, 17h22

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