Junior
Lehet-e C++-ban függvénymutatót deklarálni?
sobes.tech MI
Válasz az MI-től
Igen.
// Egy függvénymutató, amely két int-et fogad és egy int-et ad vissza
int (*ptr_az_ADD)(int, int);
// Példa egy olyan függvényre, amely megfelel a szignatúrának
int ADD(int a, int b) {
return a + b;
}
// A függvény címének hozzárendelése a mutatóhoz
ptr_az_ADD = &ADD;
// A függvény hívása a mutató segítségével
int eredmeny = ptr_az_ADD(5, 3); // az eredmény 8 lesz
Szintén típus aliasok (typedef) vagy using használatával:
// typedef használata
typedef int (*OperationFunc)(int, int);
OperationFunc ptr_a_sub;
int SUB(int a, int b) {
return a - b;
}
ptr_a_sub = ⊂
int eredmeny_sub = ptr_a_sub(10, 4); // az eredmény 6 lesz
// using használata (C++11 és későbbi)
using OperationFunc2 = int (*)(int, int);
OperationFunc2 ptr_a_mul;
int MUL(int a, int b) {
return a * b;
}
ptr_a_mul = &MUL;
int eredmeny_mul = ptr_a_mul(2, 7); // az eredmény 14 lesz
A függvénymutatók felhasználhatók függvények argumentumaiként (callback-ek) vagy visszatérési értékként.