OVH Cloud OVH Cloud

pointeur sur fonction en c++

2 réponses
Avatar
manop
bonjour,

j'essaie d'utiliser un pointeur sur fonction dans une classe.
J'utilise
Microsoft Visual C++ .NET 69534-270-0000007-18109

voici le code:

dans la définition de la classe:
typedef int (CDoubleServeurDlg::*fct_centrale_type) (CString strEJ, CString
strET);
void ParcourirET(fct_centrale_type FonctionCentrale);
int UneMinutePasseFC(CString strEJ, CString strET);

dans le corps des fonction:
void CDoubleServeurDlg::ParcourirET(fct_centrale_type FonctionCentrale)
{...if (FonctionCentrale(CString(szEJ), CString(szET)) == -1){...};...}
void CDoubleServeurDlg::UneMinutePasse()
{ParcourirET(UneMinutePasseFC);}

y me dit:
error C2064: le terme ne correspond pas à une fonction qui prend les
arguments 2
sur la ligne:
if (FonctionCentrale(CString(szEJ), CString(szET)) == -1)


d'ou vient le pb ?
merci

2 réponses

Avatar
Falk Tannhäuser
manop wrote:

if (FonctionCentrale(CString(szEJ), CString(szET)) == -1)


if( (this->*FonctionCentrale)(CString(szEJ), CString(szET)) == -1 )

Falk

Avatar
manop
Falk Tannhäuser wrote:
manop wrote:

if (FonctionCentrale(CString(szEJ), CString(szET)) == -1)



if( (this->*FonctionCentrale)(CString(szEJ), CString(szET)) == -1 )

Falk


merci !