Utilisation d'un pointeur de fonction membre

cyrcocq Messages postés 4 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 15 avril 2011 - 22 sept. 2005 à 23:51
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 23 sept. 2005 à 15:42
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

magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
23 sept. 2005 à 15:42
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
0
Rejoignez-nous