函數指針是指向函數的指針,它提供了在運行時動態調用函數的能力。函數指標參數通常用於將回調傳遞給其他函數。
const
限定符可以套用於函數指標參數,以指定函數指標指向的函數不能被修改。這確保了函數指標指向的函數在呼叫期間不會被意外覆蓋或修改。
void foo(void (*func)(int));
在上面的範例中,foo
函數接受一個函數指標參數func
,該函數指標指向一個接受單一整數參數的函數。 const
限定詞指定指向的函數不能被修改。
考慮一個計算兩個整數最大公約數的函數:
int gcd(int a, int b) { while (b) { int temp = a % b; a = b; b = temp; } return a; }
我們可以透過將gcd
函數作為一個函數指標參數傳遞來建立一個函數,該函數傳回兩個數字的最小公倍數:
int lcm(int a, int b) { return a * b / gcd(a, b); }
在main
函數中,我們可以使用std::function
包裝器類來建立指向gcd
函數的const
函數指標:
int main() { std::function<int(int, int)> gcd_ptr = std::function<int(int, int)>(gcd); int result = lcm(12, 18); std::cout << result << std::endl; return 0; }
輸出:
36
在此範例中,gcd_ptr
是指向gcd
函數的const
函數指針,因為它使用std::function
包裝器類別創建,該類別確保了指向的函數不能被修改。
以上是C++ 函數指標參數的 const 限定符的詳細內容。更多資訊請關注PHP中文網其他相關文章!