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 болот
// C++11 жана андан кийинки версиялар үчүн using
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) же кайтаруу маанилери катары колдонулушу мүмкүн.