Heim >Backend-Entwicklung >C++ >Wie verwende ich Funktionszeiger in C++?

Wie verwende ich Funktionszeiger in C++?

WBOY
WBOYOriginal
2024-04-12 12:27:011053Durchsuche

Ein Funktionszeiger ist ein Zeiger auf eine Funktion, der zum Implementieren von Rückrufen, anonymen Funktionen und allgemeiner Programmierung verwendet wird. Syntax: returnType (*functionName)(parameterList). Verwendung: Deklarieren Sie einen Zeiger auf den gewünschten Funktionstyp und verwenden Sie den Funktionszeiger wie jeden anderen Zeiger. Praktischer Fall: Implementieren Sie eine Sortierfunktion und übergeben Sie eine Vergleichsfunktion, um die Vergleichslogik anzupassen.

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

C++-Funktionszeiger-Nutzungshandbuch

Einführung

Ein Funktionszeiger ist ein spezieller Zeigertyp, der auf eine Funktion zeigt. In C++ werden Funktionszeiger hauptsächlich zur Implementierung von Rückruffunktionen, anonymen Funktionen und allgemeiner Programmierung verwendet.

Syntax

Die Syntax eines Funktionszeigers lautet wie folgt:

returnType (*functionName)(parameterList);

Wobei:

  • returnType ist der Rückgabetyp der Funktion, auf die der Zeiger zeigt.
  • returnType 是指针指向的函数的返回类型。
  • functionName 是函数指针的名称。
  • parameterList 是指针指向的函数的参数列表。

使用

要使用函数指针,需要先声明一个指向所需函数类型的函数指针。例如:

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

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

然后,可以用像其他指针一样使用函数指针。例如:

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

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

实战案例

场景:实现一个排序函数,允许传递一个比较函数以自定义比较逻辑

#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;
}

在这个实战案例中,compare 函数指针被传递给 sortDescending 函数。sortDescending 函数使用比较函数对向量进行排序。因此,输出将是降序排序后的向量元素:5 4 3 2 1functionName ist der Name des Funktionszeigers.

parameterList ist die Parameterliste der Funktion, auf die der Zeiger zeigt. 🎜🎜Mit 🎜🎜🎜Um einen Funktionszeiger zu verwenden, müssen Sie zunächst einen Funktionszeiger deklarieren, der auf den gewünschten Funktionstyp zeigt. Zum Beispiel: 🎜rrreee🎜 Funktionszeiger können dann wie jeder andere Zeiger verwendet werden. Zum Beispiel: 🎜rrreee🎜🎜Praktischer Fall🎜🎜🎜🎜Szenario: Implementieren Sie eine Sortierfunktion, die die Übergabe einer Vergleichsfunktion ermöglicht, um die Vergleichslogik anzupassen🎜🎜rrreee🎜In diesem praktischen Fall der Funktionszeiger compare wird an die Funktion sortDescending übergeben. Die Funktion sortDescending sortiert Vektoren mithilfe von Vergleichsfunktionen. Daher werden als Ausgabe die Vektorelemente in absteigender Reihenfolge sortiert: 5 4 3 2 1. 🎜

Das obige ist der detaillierte Inhalt vonWie verwende ich Funktionszeiger in C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn