Heim > Backend-Entwicklung > C++ > Hauptteil

Die Definition und Verwendung von Funktionszeigern in C++

PHPz
Freigeben: 2024-04-13 14:15:01
Original
628 Leute haben es durchsucht

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.

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

Definition und Verwendung von Funktionszeigern in C++

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.

Definieren Sie einen Funktionszeiger

In C++ kann ein Funktionszeiger wie folgt definiert werden:

returntype (*function_ptr_name)(param_type1, param_type2, ...);
Nach dem Login kopieren

Definieren Sie beispielsweise einen Zeiger auf eine Funktion, die zwei ganzzahlige Parameter akzeptiert und eine Ganzzahl zurückgibt:

int (*add_pointer)(int, int);
Nach dem Login kopieren

Initialisierung eines Funktionszeigers

kann durch Übergeben der Funktion erfolgen. Weisen Sie einem Funktionszeiger einen Namen zu, um ihn zu initialisieren:

add_pointer = add; // 假设 add 是一个接收两个整数并返回整数的函数
Nach dem Login kopieren

Alternativ können Sie einen Lambda-Ausdruck verwenden, um einen Funktionszeiger zu erstellen:

add_pointer = [](int a, int b) -> int { return a + b; };
Nach dem Login kopieren

Funktionszeiger aufrufen

Sie können eine Funktion aufrufen Zeiger wie eine normale Funktion:

int result = add_pointer(10, 20);
Nach dem Login kopieren

Praktischer Fall: Sortierfunktion

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;
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage