> 백엔드 개발 > C++ > C++에서 함수 포인터의 정의와 사용법

C++에서 함수 포인터의 정의와 사용법

PHPz
풀어 주다: 2024-04-13 14:15:01
원래의
648명이 탐색했습니다.

C++의 함수 포인터는 함수를 가리키는 변수로, 함수를 인수로 전달할 수 있습니다. 함수 포인터를 사용하면 함수 포인터를 정의하고, 함수 이름이나 람다 표현식을 할당하고, 일반 함수처럼 호출할 수 있습니다. 함수 포인터는 정렬 함수 연산자와 같은 함수 연산자에서 널리 사용되므로 런타임에 정렬 함수를 만들고 사용할 수 있습니다.

C++ 中函数指针的定义和用法

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿