Edited at

C++ 関数ポインタとはなんぞや?コールバック関数の作り方

More than 1 year has passed since last update.

たまに聴く謎の言葉「関数ポインタ」について調べてみました。


関数ポインタ

関数を開始するアドレス(エントリポイント)を入れるための変数

次のように定義。

下記の例だと (*ptn) が関数ポインタ


hoge.cpp


int MyFunc(int a, int b){
return a+b;
}

int main(){
//戻り値の型 関数ポインタ Myfuncの引数の型
int (*ptn)(int,int) = MyFunc;

// 関数ポインタを使って関数を実行も可能
cout << ptn(10,10) << endl

}



コールバック関数

関数の引数に指定することで呼び出される関数。この例ではMyFunc関数


hoge.cpp

int MyFunc(int a, int b){

return a+b;
}

int OutPutFunc(int (*ptn)(int,int)){
cout << ptn(10,10);
}

int main(){
OutPutFunc(MyFunc);
return 0;
}