C++ 함수 포인터의 고급 사용법: 함수 포인터 배열: 여러 함수 포인터를 배열에 저장하여 다양한 유형의 함수 호출을 용이하게 합니다. 함수 매개변수로서의 함수 포인터: 함수 포인터를 다른 함수의 매개변수로 사용하여 코드 역학 및 재사용성을 달성합니다. 표준 라이브러리 함수 포인터: std::function 및 std::bind와 같은 표준 라이브러리 함수를 사용하여 함수 포인터를 처리합니다.
C++ 함수 포인터 고급 가이드: 고급 사용법 및 모범 사례
머리말
함수 포인터는 코드를 보다 유연한 방식으로 작업할 수 있게 해주는 C++의 강력한 도구입니다. 이 가이드에서는 함수 포인터의 잠재력을 최대한 활용하는 데 도움이 되는 고급 사용법과 모범 사례를 살펴보겠습니다.
고급 사용법
함수 포인터 배열
함수 포인터 배열을 사용하면 여러 함수 포인터를 배열에 저장할 수 있습니다. 이는 다양한 유형의 여러 함수를 호출해야 할 때 유용합니다.
using FnType = void (*)(int); // 定义函数指针类型 FnType functions[] = {&func1, &func2, &func3}; for (FnType fn : functions) { fn(value); // 调用函数 }
함수 매개변수로서의 함수 포인터
함수 포인터를 함수 매개변수로 사용하여 함수 포인터의 힘을 다른 함수에 전달할 수 있습니다. 이는 코드 역동성과 재사용성을 가능하게 합니다.
void callFunction(FnType fn) { fn(value); }
표준 라이브러리 함수 포인터
C++ 표준 라이브러리는 std::function
및 < code>std::와 같이 함수 포인터를 사용하는 많은 함수를 제공합니다. 바인딩: std::function
和 std::bind
:
std::function
是一种通用函数指针,可用于存储和调用任何类型的函数。std::bind
std::function
은 모든 유형의 함수를 저장하고 호출하는 데 사용할 수 있는 범용 함수 포인터입니다. std::bind
를 사용하면 특정 매개변수를 사용하여 기존 함수를 호출하는 새 함수 포인터를 생성할 수 있습니다. 실용 사례
함수 포인터 정렬
정수를 비교하고 정렬하기 위해 함수 포인터를 사용하는 실제 사례를 살펴보겠습니다.#include <algorithm> #include <vector> bool compare(const int& a, const int& b) { return a < b; } int main() { std::vector<int> v = {3, 1, 4, 2}; // 使用 compare 函数指针对向量排序 std::sort(v.begin(), v.end(), compare); for (const int& el : v) { std::cout << el << " "; } return 0; }
1 2 3 4
위 내용은 C++ 함수 포인터 고급 가이드: 고급 사용법 및 모범 사례 살펴보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!