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 :

Probl�me foncteur et classe


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2011
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2011
    Messages : 33
    Par d�faut Probl�me foncteur et classe
    Bonjour,

    Ce post fait suite au probl�me suivant...

    Mon nouveau probl�me est lors de l�utilisation d'un foncteur :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    template <typename T>
    class A
    {
    public:
     
        typedef T (A<T>::*InterpolationFunc)(float, float, float) const;
     
        void MA(InterpoaltionType type)
        {
           // choix de la bonne fonction d'interpolation
            InterpolationFunc interpFunc = selectInterpoaltion(type); 
     
          // PROBLEME ICI
           T val = interFunc(0.0, 0.0, 0.0); 
        }
     
        InterpolationFunc selectInterpoaltion(InterpoaltionType type)
       {
            switch(type)
            {
             case 1 : return &A::interpolation1;
             case 2 : return &A::interpolation2;
             ...
             case N : return &A::interpolationN;
            }
       }
     
        virtual T interpolation1(float, float, float) const = 0;
        virtual T interpolation2(float, float, float) const = 0;
        ...
        virtual T interpolationN(float, float, float) const = 0;
    };
     
    template <typename T>
    class B : public A<float>
    {
        float  interpolation1(float, float, float) const { cout << "interpoaltion 1" << endl; return 0.0; }
        float interpolation2(float, float, float) const { cout << "interpoaltion 2" << endl; return 0.0; }
        ...
        float interpolationN(float, float, float) const { cout << "interpoaltion N" << endl; return 0.0; }
    };
    Lors de la compilation, j'ai l'erreur suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    error: must use ‘.*’ or ‘->*’ to call pointer-to-member function in ‘interFunc (...)’, e.g. ‘(... ->* interFunc) (...)
    Je ne comprends pas ce message d'erreur : j'ai l'impression que le compilateur s'attend a ce que interFunc soit une propri�t� de la classe alors que c'est plut�t un foncteur local sur une m�thode de la classe ...

    Une id�e quelqu'un ?

    Merci d'avance

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    Bonjour,

    As-tu essay� de faire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    T val = (this->*interFunc)(0.0, 0.0, 0.0);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2011
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2011
    Messages : 33
    Par d�faut
    pffff des fois je me tirerai une balle ..... correct, merci bien Neckara !

  4. #4
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Citation Envoy� par lulafitt Voir le message
    pffff des fois je me tirerai une balle .....
    Par exemple en d�clarant N fonctions interpolationi violant d�lib�r�ment l'OCP avec un langage permettant l'impl�mentation du DP strat�gie via de l'h�ritage ou avec un map de std::function<T (float, float, float)> ? Donc oui, tu as tous les ingr�dients pour te tirer N balles dans le pied

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [RMI] probl�me Cr�ation *_stub.class et *_skel.class
    Par philobedo dans le forum API standards et tierces
    R�ponses: 6
    Dernier message: 29/05/2006, 20h03
  2. R�ponses: 8
    Dernier message: 27/04/2006, 16h00
  3. [PHPMailer] probl�me avec la classe phpmailer
    Par sansouna24 dans le forum Biblioth�ques et frameworks
    R�ponses: 1
    Dernier message: 08/04/2006, 16h51
  4. Probl�me avec la classe Calendar
    Par afrikha dans le forum Collection et Stream
    R�ponses: 3
    Dernier message: 30/03/2006, 08h48
  5. R�ponses: 9
    Dernier message: 25/09/2005, 16h33

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