Sobes.tech
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-ներ) կամ որպես վերադարձվող արժեքներ։