在C++中,函數指針是一種指向函數的指針。它是一個存儲函數地址的變量。函數指針可以像任何其他指針一樣進行操作,例如將它們賦值給另一個指針、傳遞給函數指針類型、或者使用*
運算符來調用它們所指向的函數。
下面是一個簡單的示例代碼,演示了如何使用函數指針:
#include <iostream>
// 定義一個函數,返回兩個整數之和
int add(int a, int b) {
return a + b;
}
int main() {
// 定義一個函數指針,指向add函數
int (*func_ptr)(int, int) = &add;
// 使用函數指針調用add函數,并輸出結果
int result = (*func_ptr)(3, 4);
std::cout << "The result is: " << result << std::endl;
return 0;
}
在上面的代碼中,我們首先定義了一個名為add
的函數,該函數返回兩個整數之和。然后,我們定義了一個名為func_ptr
的函數指針,該指針指向add
函數。最后,我們使用*
運算符來調用func_ptr
所指向的函數,并將結果存儲在result
變量中,并輸出結果。
除了直接使用函數指針外,還可以通過函數指針來實現回調函數等高級功能。回調函數是一種將函數作為參數傳遞給其他函數的技術,它可以在程序運行時動態地調用不同的函數。這種技術在某些情況下非常有用,例如在事件處理程序中,我們可能需要根據用戶的選擇來調用不同的函數來處理不同的事件。