Junior
Vai C++ var deklarēt funkcijas norādes?
sobes.tech AI
Atbilde no AI
Jā.
// Funkcijas norādes definīcija, kas pieņem divus int un atgriež int
int (*ptr_uz_ADD)(int, int);
// Piemērs funkcijai, kas atbilst parakstam
int ADD(int a, int b) {
return a + b;
}
// Funkcijas adreses piešķiršana norādei
ptr_uz_ADD = &ADD;
// Funkcijas izsaukšana caur norādi
int rezultāts = ptr_uz_ADD(5, 3); // rezultāts būs 8
Arī, izmantojot typedef vai using:
// Izmantojot typedef
typedef int (*OperationFunc)(int, int);
OperationFunc ptr_uz_sub;
int SUB(int a, int b) {
return a - b;
}
ptr_uz_sub = ⊂
int rezultāts_sub = ptr_uz_sub(10, 4); // rezultāts būs 6
// Izmantojot using (C++11 un jaunākas)
using OperationFunc2 = int (*)(int, int);
OperationFunc2 ptr_uz_mul;
int MUL(int a, int b) {
return a * b;
}
ptr_uz_mul = &MUL;
int rezultāts_mul = ptr_uz_mul(2, 7); // rezultāts būs 14
Funkcijas norādes var tikt izmantotas kā funkciju argumenti (callback funkcijas) vai atgriešanas vērtības.