首頁 >後端開發 >C++ >C++ 函數指標參數的 const 限定符

C++ 函數指標參數的 const 限定符

WBOY
WBOY原創
2024-04-20 18:36:01829瀏覽

C++ 函数指针参数的 const 限定符

C 函數指針參數的 const 限定符

函數指針是指向函數的指針,它提供了在運行時動態調用函數的能力。函數指標參數通常用於將回調傳遞給其他函數。

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn