C++関数ポインタをパラメータとして渡す方法は何ですか?
C++では、他の関数に関数ポインタを引数として渡すことができます。以下はその例です。
#include <iostream>
// 定义一个函数指针类型
typedef void (*FunctionPtr)(int);
// 接受函数指针作为参数的函数
void printNumber(FunctionPtr ptr, int num) {
ptr(num);
}
// 被传递的函数
void printSquare(int num) {
std::cout << "Square: " << num * num << std::endl;
}
int main() {
// 将函数指针作为参数传递给另一个函数
printNumber(printSquare, 5);
return 0;
}
上の例では、まず、int型の引数を受け取りvoidを返す関数ポインタのFunctionPtrタイプを定義しました。次に、関数ポインタを引数として受け取り、受け取った関数ポインタを呼び出すprintNumberという関数を定義しました。最後に、main関数で、printSquare関数のポインタをprintNumber関数に引数として渡しました。
プログラムを実行すると、次の出力が表示されます:
Square: 25
このことは、関数ポインターが他の関数に正常に渡されることを証明しています。