함수 포인터는 런타임 시 동적으로 함수를 호출하는 기능을 제공하는 함수에 대한 포인터입니다. 함수 포인터 매개변수는 콜백을 다른 함수에 전달하는 데 자주 사용됩니다.
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
foo
함수는 단일 정수를 허용하는 함수를 가리키는 함수 포인터 매개변수 func
를 허용합니다. 매개변수 함수입니다. const
한정자는 가리키는 함수를 수정할 수 없음을 지정합니다. 🎜gcd
함수를 함수 포인터 인수로 전달하여 함수를 만들 수 있습니다. 이 함수는 두 숫자의 가장 낮은 공배수를 반환합니다. 🎜rrreee🎜main
함수에서 std::function
래퍼 클래스를 사용하여 gcd 함수의 <code>const
함수 포인터: 🎜rrreee🎜출력: 🎜rrreee🎜이 예에서 gcd_ptr
는 gcd
에 대한 포인터입니다. > function code>const 함수 포인터. 이는 가리키는 함수를 수정할 수 없도록 보장하는 std::function
래퍼 클래스를 사용하여 생성되기 때문입니다. 🎜위 내용은 C++ 함수 포인터 매개변수에 대한 const 한정자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!