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

Langage C++ Discussion :

Classe dérivée et conversion de type


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 23
    Par défaut Classe dérivée et conversion de type
    Bonjour,

    j'utilise foxtoolkit et je souhaite créer ma propre classe String dérivée de FXString, dans le but de pouvoir l'utiliser comme une FXString mais enrichie des méthodes que je pourrais ajouter.

    Je m'y suis donc pris comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    class String : public FXString
    {
    public:
    // Appel des constructeurs de FXString
    	String() : FXString() {}
    	String (const String &s) : FXString (s) {}
    	String (const FXchar *s) : FXString (s) {}
    etc...
     
    // Copie d'une FXString dans String
    	String (const FXString &s) { *this = s; }
    	String (FXString &s) { *this = s; }
    	String (FXString *s) { *this = *s; }
    };
    lorsque je souhaite passer un objet String en paramètre d'une fonction de la bibliotèque FOX ne recevant que des FXString le compilateur (gcc) me génère une erreur qui me dit que la fonction ne reçoit pas des String en paramètre mais des FXString.
    J'ai pensé à ajouter la méthode suivante à ma classe String:
    FXString& convertToFXString();
    que j'apelle au moment opportun.
    static_cast devrait aussi faire l'affaire ...

    Mais avant ça, j'aimerais savoir s'existe-t-il un moyen élégant de pouvoir convertir un String en FXString lors d'un passage de paramètre ?
    Un peu comme si FXString avait un constructeur de copie FXString(const String& s).
    Je pensais trouver mon bonheur du coté de la surcharge des opérateurs mais rien ne semble répondre à mon besoin.

    Merci pour vos conseils.

    Xavier

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    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 296
    Par défaut
    Héritage et sémantique de valeur se marient très mal. Le slicing n'aide pas.

    La solution élégante ?
    1- ne jamais hériter publiquement des trucs que l'on veut voir disposer d'une sémantique de valeur et vice versa.
    2- étendre l'interface étendue par adjonction de fonctions libres qui n'ont pas besoin d'accéder aux détails internes de tes objets.
    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 averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 23
    Par défaut
    merci beaucoup pour votre réponse.

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/08/2012, 13h59
  2. préciser le type des objets dans une classe dérivée d'arraylist
    Par JCD21 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 28/06/2008, 18h04
  3. destructeur d'une classe dérivée du type list
    Par Haze. dans le forum Général Python
    Réponses: 2
    Dernier message: 19/11/2007, 01h11
  4. Réponses: 2
    Dernier message: 06/12/2005, 09h41
  5. Déterminer le type d'une class dérivée
    Par LDDL dans le forum MFC
    Réponses: 3
    Dernier message: 10/12/2004, 17h36

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