C++ では、関数ポインターは関数を指す変数であり、関数をパラメーターとして動的に渡したり保存したりできます。構文は、型名 * 関数名です。割り当てるときは関数ポインタ アドレスを使用し、呼び出し時にそれを逆参照します。例えば、関数ポインタを使用して最大値を計算する場合、関数ポインタを割り当てて呼び出すことで計算が行われます。
C++ では、関数ポインターは関数を指す変数です。これにより、関数をパラメータとして動的に渡したり、データ構造に格納したりすることができます。
関数ポインタは通常の関数のように宣言されますが、型名の後にアスタリスク (*) が続きます:
typedef void (*FunctionPointer)(int);
通常のポインタと同じように、関数ポインタに関数アドレスを割り当てることができます。
FunctionPointer fp = &myFunction;
関数ポインタを逆参照することで呼び出すことができます:
fp(10);
関数ポインタを使用して 2 つの数値の最大値を計算するプログラムを考えてみましょう:
#include <iostream> using namespace std; // 最大值函数 int max(int a, int b) { return a > b ? a : b; } // 函数指针比较函数 int compare(int a, int b, int (*fp)(int, int)) { return fp(a, b); } int main() { // 分配函数指针并调用它来计算两数的最大值 int (*fp)(int, int) = &max; int result = compare(5, 10, fp); // 打印结果 cout << "最大值:" << result << endl; return 0; }
以上がC++ では関数ポインタはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。