Junior
Կարո՞ղ է C++-ում հայտարարել ֆունկցիայի ցուցիչ։
sobes.tech AI
Պատասխան AI-ից
Այո.
// Ֆունկցիայի ցուցիչի սահմանում, որը ընդունում է երկու int և վերադարձնում է int
int (*ptr_ին_ADD)(int, int);
// Օրինակ ֆունկցիա, որը համապատասխանում է ստորագրությանը
int ADD(int a, int b) {
return a + b;
}
// Ֆունկցիայի հասցեի վերագրում ցուցիչին
ptr_ին_ADD = &ADD;
// Ֆունկցիայի կանչում ցուցիչի միջոցով
int արդյունք = ptr_ին_ADD(5, 3); // արդյունքը կլինի 8
Նույնպես, օգտագործելով typedef կամ using:
// typedef-ի օգտագործում
typedef int (*OperationFunc)(int, int);
OperationFunc ptr_ին_sub;
int SUB(int a, int b) {
return a - b;
}
ptr_ին_sub = ⊂
int արդյունք_sub = ptr_ին_sub(10, 4); // արդյունքը կլինի 6
// using-ի օգտագործում (C++11 և ավելի նոր)
using OperationFunc2 = int (*)(int, int);
OperationFunc2 ptr_ին_mul;
int MUL(int a, int b) {
return a * b;
}
ptr_ին_mul = &MUL;
int արդյունք_mul = ptr_ին_mul(2, 7); // արդյունքը կլինի 14
Ֆունկցիայի ցուցիչները կարող են օգտագործվել որպես արգումենտներ (callback-ներ) կամ որպես վերադարձվող արժեքներ։