C++의 함수 포인터는 함수를 가리키는 변수로, 함수를 인수로 전달할 수 있습니다. 함수 포인터를 사용하면 함수 포인터를 정의하고, 함수 이름이나 람다 표현식을 할당하고, 일반 함수처럼 호출할 수 있습니다. 함수 포인터는 정렬 함수 연산자와 같은 함수 연산자에서 널리 사용되므로 런타임에 정렬 함수를 만들고 사용할 수 있습니다.
함수 포인터는 함수를 가리키는 변수입니다. 함수를 인수로 전달하는 기능과 런타임에 함수를 호출하는 유연성을 제공합니다.
C++에서 함수 포인터는 다음과 같이 정의할 수 있습니다.
returntype (*function_ptr_name)(param_type1, param_type2, ...);
예를 들어 두 개의 정수 매개변수를 허용하고 정수를 반환하는 함수에 대한 포인터를 정의합니다.
int (*add_pointer)(int, int);
함수를 전달하여 수행할 수 있습니다. 함수 포인터에 이름을 할당하여 초기화합니다:
add_pointer = add; // 假设 add 是一个接收两个整数并返回整数的函数
또는 람다 표현식을 사용하여 함수 포인터를 만들 수 있습니다:
add_pointer = [](int a, int b) -> int { return a + b; };
함수를 호출할 수 있습니다. 일반 함수와 같은 포인터:
int result = add_pointer(10, 20);
함수 포인터의 일반적인 응용 프로그램은 런타임에 정렬 함수를 만들고 사용할 수 있도록 하는 함수화기입니다. 예를 들어, 다음 코드는 함수 포인터를 사용하여 비교 함수로 std::sort
를 구현합니다.
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> numbers = {3, 1, 5, 2, 4}; // 定义比较函数指针 int (*compare_func)(int, int) = [](int a, int b) -> bool { return a < b; }; // 使用函数指针排序 std::sort(numbers.begin(), numbers.end(), compare_func); // 输出排序后的结果 for (const auto& number : numbers) { std::cout << number << ' '; } return 0; }
위 내용은 C++에서 함수 포인터의 정의와 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!