Utilisation d'un pointeur de fonction membre

Signaler
Messages postés
4
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
15 avril 2011
-
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
-
Bonjour,

J'ai déjà discuté de ça ailleurs, on m'a conseillé d'autres méthodes, mais imaginons une classe contenant un ensemble de fonction accessibles par un pointeur de fonctions membres.
Comment utiliser ce pointeur de fonction membre???
Exemple Aussi simple que possible:


class MaClasse


{


public:



double A;



typedef
void (MaClasse::*fptrMaClasse) (
double);


MaClasse (
void);



void Calc(
double);



static fptrMaClasse fonction [1];



void f0(
double);


};



void MaClasse::f0(
double t)


{


A=t;
//(ou autre)


}


MaClasse::MaClasse()


{


fonction[0]=&MaClasse::f0;


}



void MaClasse::Calc(
double t)


{


(MaClasse::fonction[0]) (t);



//error C2064:le terme ne correspond pas à une fonction


}

Alors? Qu'est ce que je dois faire pour utiliser mon pointeur?

Merci

Cyrcocq

On peut toujours faire Mieux

1 réponse

Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
class C

{

private:

call();

...

private:

static T fNew(const unsigned int iOffSet);

static T fOld(const unsigned int iOffSet);

}



class B

{

public:

static super();

static unsigned int stcDeconcat(T (*pf)(const unsigned int iOffSet)=NULL);

}





C::call()

{

BFichier::super(m_iMeth?C::fNew:C::fOld);

}



B::super()

{

unsigned int nb;

...

T maVar;

if(pF)

maVar=(*pfoncMagique)(nb);

else

maVar=init();

...

}







voilà, et c'est un exemple bcp plus complexe qui a été ici simplifié....



Bonne prog


___________________________________________________________
Magicalement
Nono