Home  >  Article  >  Backend Development  >  How to use function pointers in C++?

How to use function pointers in C++?

WBOY
WBOYOriginal
2024-04-12 12:27:01982browse

A function pointer is a pointer to a function, used to implement callbacks, anonymous functions and generic programming. Syntax: returnType (*functionName)(parameterList). To use: Declare a pointer to the desired function type and use the function pointer like any other pointer. Practical case: Implement a sorting function and pass a comparison function to customize the comparison logic.

C++ 中函数指针的使用方法是什么?

Guidelines for the use of C function pointers

Introduction

The function pointer is a A special type of pointer that points to a function. In C, function pointers are mainly used to implement callback functions, anonymous functions and generic programming.

Syntax

The syntax of a function pointer is as follows:

returnType (*functionName)(parameterList);

Among them:

  • returnType Is the return type of the function pointed to by the pointer.
  • functionName is the name of the function pointer.
  • parameterList is the parameter list of the function pointed to by the pointer.

Usage

To use a function pointer, you need to first declare a function pointer pointing to the desired function type. For example:

int add(int a, int b) { return a + b; }

int (*sumFunction)(int, int); // 声明一个指向 add 函数的函数指针

Then, function pointers can be used like other pointers. For example:

// 将 sumFunction 指向 add 函数
sumFunction = &add;

// 调用 sumFunction
int result = sumFunction(10, 20); // result 将等于 30

Practical case

Scenario: Implement a sorting function that allows passing a comparison function to customize the comparison logic

#include <algorithm>
#include <vector>

// 比较函数
bool compare(int a, int b) { return a > b; }

// 排序函数,接受一个比较函数
void sortDescending(std::vector<int>& numbers, bool (*compareFunction)(int, int)) {
    std::sort(numbers.begin(), numbers.end(), compareFunction);
}

int main() {
    std::vector<int> numbers = {1, 5, 3, 2, 4};

    // 使用比较函数排序数组
    sortDescending(numbers, compare);

    // 输出排序后的数组
    for (int number : numbers) {
        std::cout << number << " ";
    }

    return 0;
}

In this practical case, the compare function pointer is passed to the sortDescending function. sortDescending Function sorts vectors using comparison functions. Therefore, the output will be the vector elements sorted in descending order: 5 4 3 2 1.

The above is the detailed content of How to use function pointers in C++?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn