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 :

votre avis sur l'implementation d'une classe Handle


Sujet :

C++

  1. #1
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut votre avis sur l'implementation d'une classe Handle
    Bonjour,

    j'ai pensé qu'il serait parfois utile d'avoir une classe Handle (un pointeur vers une donnée accessible à un nombre restreint de classes) et je cherche une manière élégante de l'implémenter.

    Ma première idée d'utilisation est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef Handle<WidgetData, TypeList(Widget, WidgetManager, Graphic, System)> WidgetDataHandle;
    Ce qui définirait un Handle vers un WidgetData dont les opérateur -> et * ne seraient accessible qu'aux classes de la TypeList.

    Ainsi il serait possible de faire transiter des WidgetDataHandle dans l'application mais inutilisable ailleurs que prévu.

    On pourrait imaginer une politique de stockage template sous forme de smartptr, auto_ptr...

    Le problème c'est que ne fonctionne pas donc je suis coincé dans mon idée et je viens vers vos lumières.

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    si ta classe T n'est pas définit , c'est sur que ca va pas compiler car pour ma part , je vois pas ou tu veut mettre ta déclaration d'amitié .
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    C'est vrai que même avec une typelist, c'est un peu chaud, vu que l'amitiée n'est pas propagée par héritage.

    Alors d'autres propositions pour implémenter l'idée ?

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    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 279
    Points : 11 013
    Points
    11 013
    Par défaut
    L'amitié ne s'héritant pas, tu peux peut-être t'en sortir en faisant en sorte que tes 4 classes dérivent d'un même type qui dispose d'un accesseur interne (protégé) vers le handle. Le handle déclarant ce type parent comme ami.

    M'enfin, tout cela me donne l'impression d'un tentative d'utiliser l'amitié à l'envers.
    En limitant l'accès à la définition (!= déclaration) de tes deux opérateurs de la classe handle, tu pourras t'assurer qu'ils ne seront pas utilisés hors des endroits que tu veux -- avec une telle solution, il faut s'attendre à des messages d'erreurs cryptiques.
    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...

  5. #5
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    Dommage j'aimais bien le concept.

Discussions similaires

  1. Votre avis sur ce qu'avance une SSII
    Par thebloodyman dans le forum SSII
    Réponses: 7
    Dernier message: 10/03/2011, 18h26
  2. Réponses: 6
    Dernier message: 31/08/2007, 08h20
  3. Votre avis sur une proposition de job
    Par plex dans le forum Emploi
    Réponses: 7
    Dernier message: 18/01/2007, 10h11
  4. [java.lang.class] Votre avis sur une portion de code
    Par be_tnt dans le forum Langage
    Réponses: 3
    Dernier message: 18/10/2006, 16h55

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