Heim  >  Artikel  >  Backend-Entwicklung  >  Die Definition und Verwendung von Funktionszeigern in C++

Die Definition und Verwendung von Funktionszeigern in C++

PHPz
PHPzOriginal
2024-04-13 14:15:01627Durchsuche

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, ...);

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

int (*add_pointer)(int, int);

Initialisierung eines Funktionszeigers

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

Funktionszeiger aufrufen

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

int result = add_pointer(10, 20);

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

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!

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