Ein Funktionszeiger in C++ ist eine Variable, die auf eine Funktion zeigt und die Übergabe von Funktionen als Argumente ermöglicht. Mithilfe von Funktionszeigern können Sie diese definieren, ihnen Funktionsnamen oder Lambda-Ausdrücke zuweisen und sie wie normale Funktionen aufrufen. Funktionszeiger werden häufig in Funktionsoperatoren wie Sortierfunktionsoperatoren verwendet und ermöglichen die Erstellung und Verwendung von Sortierfunktionen zur Laufzeit.
Ein Funktionszeiger ist eine Variable, die auf eine Funktion zeigt. Es bietet die Möglichkeit, Funktionen als Argumente zu übergeben und die Flexibilität, Funktionen zur Laufzeit aufzurufen.
In C++ kann ein Funktionszeiger wie folgt definiert werden:
returntype (*function_ptr_name)(param_type1, param_type2, ...);
Definieren Sie beispielsweise einen Zeiger auf eine Funktion, die zwei ganzzahlige Parameter akzeptiert und eine Ganzzahl zurückgibt:
int (*add_pointer)(int, int);
kann durch Übergeben der Funktion erfolgen. Weisen Sie einem Funktionszeiger einen Namen zu, um ihn zu initialisieren:
add_pointer = add; // 假设 add 是一个接收两个整数并返回整数的函数
Alternativ können Sie einen Lambda-Ausdruck verwenden, um einen Funktionszeiger zu erstellen:
add_pointer = [](int a, int b) -> int { return a + b; };
Sie können eine Funktion aufrufen Zeiger wie eine normale Funktion:
int result = add_pointer(10, 20);
Eine häufige Anwendung von Funktionszeigern sind Funktionizer, die es ermöglichen, Sortierfunktionen zur Laufzeit zu erstellen und zu verwenden. Der folgende Code verwendet beispielsweise Funktionszeiger, um std::sort
mit einer Vergleichsfunktion zu implementieren:
#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; }
Das obige ist der detaillierte Inhalt vonDie Definition und Verwendung von Funktionszeigern in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!