Pointeur de fonction en tant que paramètre
J'essaie d'appeler une fonction qui l'a adopté en tant que pointeur de fonction sans argument, mais je ne peux pas le faire fonctionner.
void *disconnectFunc;
void D::setDisconnectFunc(void (*func)){
disconnectFunc = func;
}
void D::disconnected(){
*disconnectFunc;
connected = false;
}
- cdecl.org peut aider.
- cdecl n'aide pas à qui en particulier (j'ai essayé cdecl avant de googler cette question).
Vous devez vous connecter pour publier un commentaire.
La bonne façon de le faire est:
Remplacer
void *disconnectFunc;
avecvoid (*disconnectFunc)();
de déclarer le pointeur de la fonction de type de variable. Ou encore mieux, utiliser untypedef
:Vous devez déclarer disconnectFunc comme un pointeur de fonction, pas un pointeur void. Vous devez également appeler comme une fonction (avec les parenthèses), et pas de "*" est nécessaire.