Sobes.tech
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.