Je suis en train d'apprendre le concept de passer une fonction en tant que paramètre.
Tout d'abord, j'ai essayé de passer une "fonction libre" (une fonction qui n'appartient à aucune classe ou structure) à une autre fonction libre en utilisant ce pointeur void(*Func)(int)
et cela a fonctionné.
Deuxièmement, passer une fonction libre à une fonction appartenant à une structure en utilisant le même pointeur a également fonctionné.
Mais lorsque j'ai essayé de passer une fonction dans une structure à une autre fonction dans une structure différente avec ce même pointeur, une erreur s'est affichée.
Voici mon code:
#include
#include
#include
#include
using namespace std;
struct A {
void Func_A (void (*Func)(int)) {
(*Func)(5);
}
};
struct B {
void Func_B (int a) {
cout<
`Voici l'erreur affichée:
[Error] no matching function for call to 'A::Func_A()'`