C++ 함수 포인터는 함수를 가리키므로 포인터를 통해 함수를 호출할 수 있습니다. 함수 객체는 Operator() 연산자를 오버로드하고 함수처럼 호출할 수 있는 클래스 또는 구조체입니다. 이는 다른 함수에 인수로 전달되는 함수인 콜백 함수로 작업할 때 유용합니다.
소개
C++에서 함수 포인터 및 함수 개체는 코드에서 함수를 표현하고 조작하기 위한 강력한 도구입니다. 이러한 개념을 이해하는 것은 코드의 유연성과 유지 관리성을 크게 향상시킬 수 있으므로 중요합니다.
함수 포인터
함수 포인터는 함수에 대한 포인터입니다. 함수의 주소를 저장하고 포인터를 통해 함수를 호출할 수 있습니다. 구문은 다음과 같습니다.
return_type (*function_pointer)(parameter1, parameter2, ...);
예:
다음 함수는 두 숫자의 합을 계산합니다.
int add(int a, int b) { return a + b; }
다음 함수 포인터를 사용하여 이 함수를 가리킬 수 있습니다.
int (*add_ptr)(int, int) = add;
이제 함수 포인터를 통해 추가
함수: add
函数:
int result = add_ptr(10, 20); // 等价于 add(10, 20)
函数对象
函数对象是一种类或结构,重载了 operator()
struct FunctionObject { return_type operator()(parameter1, parameter2, ...); };
Function object
함수 개체는operator()
연산자를 오버로드하여 다음과 같이 호출할 수 있도록 하는 클래스 또는 구조체입니다. 기능. 구문은 다음과 같습니다. struct AddFunctionObject { int operator()(int a, int b) { return a + b; } };
예:
두 숫자의 합을 계산하는 함수 개체를 만듭니다.
AddFunctionObject add_object; int result = add_object(10, 20); // 等价于 add(10, 20)
void process_numbers(int* numbers, int size, int (*operation)(int)) { for (int i = 0; i < size; i++) { numbers[i] = operation(numbers[i]); } }
실용적 예: 콜백 함수
함수 포인터와 함수 개체는 콜백 함수를 사용할 때 매우 유용합니다. 콜백 함수는 다른 함수에 매개변수로 전달되는 함수입니다.예:
숫자 집합을 다른 함수에 전달하는 함수가 있다고 가정해 보겠습니다. 후자는 각 번호에 대해 작업을 수행합니다. 함수 포인터나 함수 객체를 사용하여 두 번째 함수를 콜백 함수로 전달할 수 있습니다.함수 포인터 사용:
🎜void process_numbers(int* numbers, int size, FunctionObject& operation) { for (int i = 0; i < size; i++) { numbers[i] = operation(numbers[i]); } }
위 내용은 C++ 함수 포인터와 함수 개체: 코드의 숨겨진 잠재력 잠금 해제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!