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 :

Virtualiser une fonction template


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 42
    Par défaut Virtualiser une fonction template
    Bonjour, j'utilise une classe dans un projet de prog où il y a une méthode que j'aimerai bien virtualiser car je t'utilise avec une classe fille.

    Mais le problème c'est que cette méthode utilise un template:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    template<typename T> T to();
    Et j'ai essayé ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    template<typename T> virtual T to();
    Mais j'ai le message " error: templates may not be 'virtual' "

    Donc quand j'appel la méthode avec un objet fille, la méthode mère est appelée

    Une solution svp? Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Bonjour,

    Une fonction template ne peut être virtuelle (ca pose quelques problèmes techniques).

    Ne peux tu pas exporter le paramètre template au sein de la classe ? Tu utilises cette fonction template membre sur le même objet avec plusieurs paramètres différents ?

    Il est difficile de te donner une solution alternative sans savoir exactement pourquoi tu as ce besoin (il peut-être compréhensible ceci dit) ? Peux tu préciser le contexte et le pourquoi de ce besoin, ie ton design actuel et son objectif ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 42
    Par défaut
    Citation Envoyé par Flob90 Voir le message
    Bonjour,

    Une fonction template ne peut être virtuelle (ca pose quelques problèmes techniques).

    Ne peux tu pas exporter le paramètre template au sein de la classe ? Tu utilises cette fonction template membre sur le même objet avec plusieurs paramètres différents ?

    Il est difficile de te donner une solution alternative sans savoir exactement pourquoi tu as ce besoin (il peut-être compréhensible ceci dit) ? Peux tu préciser le contexte et le pourquoi de ce besoin, ie ton design actuel et son objectif ?
    Alors en gros, la classe mère s'appelle "Variable" et les classe filles "Char" "Int" "Double" etc

    Et j'aimerai par exemple convertir un tableau de Variable (contenant des "Char" "Int" "Double" etc ) en un seul type donc je fais:

    for (bla bla bla)
    monTableau[i]->to<Int>();

    Pour convertir tout le tableau en Int.

    J'espère avoir été clair dans mes explications

  4. #4
    Membre émérite
    Avatar de mitkl
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 364
    Par défaut
    tu ne voudrais pas imiter le principe de boost::variant par hasard ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 42
    Par défaut
    Citation Envoyé par mitkl Voir le message
    tu ne voudrais pas imiter le principe de boost::variant par hasard ?
    Pas vraiment, mais je connaissais pas et je trouve ça très intéressant merci

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 274
    Par défaut
    Salut

    Quel est ton but lorsque tu déclares plusieurs classes Int, Double etc ... héritant de Variable ?

    Edit : en fait en relisant ton post je me suis aperçu que cela revenait exactement à ce qu'avait dit @mitkl, c'est à dire à boost::variant
    Je crois que j'avais aussi testé ce genre de chose avant qu'on me dise que cela ne servait à rien de réinventer la roue même si c'est vrai que ça peut être assez intéressant

    Donc désolé mais je crois que je ne peux rien t'apporter de plus

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

Discussions similaires

  1. Nettoyer des std::queue en une fonction template
    Par gassi64 dans le forum SL & STL
    Réponses: 16
    Dernier message: 23/07/2009, 15h05
  2. Réponses: 6
    Dernier message: 12/06/2009, 10h54
  3. Appel d'une fonction template de façon explicite
    Par vanitom dans le forum Langage
    Réponses: 11
    Dernier message: 10/12/2008, 14h34
  4. retour d'une fonction template
    Par fjxokt dans le forum Langage
    Réponses: 10
    Dernier message: 13/08/2007, 22h29
  5. Pointeur sur une fonction template
    Par Progs dans le forum Langage
    Réponses: 2
    Dernier message: 15/02/2006, 20h25

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