関数ポインタは関数を指す変数であり、コンパイル時に実際の関数を知らなくても関数を動的に呼び出すことができます。関数には、動的関数呼び出し、コールバック関数、イベント処理、戦略パターンが含まれます。実際のケースには、動的関数呼び出し (関数ポインターを介して特定の関数を呼び出す)、コールバック関数 (関数をコールバック パラメーターとして他の関数に渡す)、およびイベント処理 (特定のイベントが発生したときに特定の関数を呼び出す) が含まれます。
関数ポインターは、関数を指す変数です。 。関数のメモリ アドレスへのポインタを格納します。このメカニズムにより、コンパイル時に実際の関数を知らなくても関数を動的に呼び出すことができます。
関数ポインタには次の関数があります:
動的関数呼び出し
// 定义函数: void Print(int num) { cout << "数字:" << num << endl; } // 定义函数指针: using PrintFunc = void (*)(int); int main() { // 指向 Print 函数的函数指针: PrintFunc printPtr = Print; // 通过函数指针调用函数: printPtr(10); // 输出:"数字:10" return 0; }
コールバック関数
// 定义一个接收回调函数的函数: void CallMeBack(int (*callback)(int)) { if (callback) { callback(10); } } // 定义回调函数: int Callback(int num) { cout << "Callback 接收的数字:" << num << endl; return 0; } int main() { // 将 Callback 函数作为回调参数传递: CallMeBack(Callback); return 0; }
イベント処理
// 定义一个事件处理函数: void OnClick() { cout << "单击发生!" << endl; } // 定义事件处理函数指针: using EventFunc = void (*)(); int main() { // 指向 OnClick 函数的事件处理函数指针: EventFunc eventHandler = OnClick; // 模拟鼠标单击事件: eventHandler(); // 输出:"单击发生!" return 0; }
以上がC++ 関数ポインターの役割は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。