Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich Klassenvorlagen in C++-Funktionsvorlagen?

Wie verwende ich Klassenvorlagen in C++-Funktionsvorlagen?

WBOY
WBOYOriginal
2024-04-15 12:48:01471Durchsuche

C++ 函数模板中的类模板是如何使用的?

Klassenvorlagen in C++-Funktionsvorlagen

C++-Funktionsvorlagen kennen Klassenvorlagen und verwenden sie als Parametertypen. Dadurch können Sie generische Funktionen erstellen, die mit einer Vielzahl von Datentypen und -strukturen arbeiten.

Syntax

template<typename T>
void func(const T& arg1, const T2& arg2, ...);

wobei:

  • T die Typvorlage des Funktionsparameters ist. T 是函数参数的类型模板。
  • arg1, arg2 及后续参数是函数的实际参数。

实战案例

考虑一个打印任何类型的一对值的函数:

template <typename T1, typename T2>
void print_pair(const T1& a, const T2& b) {
  std::cout << a << " " << b << std::endl;
}

我们可以将这个函数模板应用于不同的类型组合:

int main() {
  print_pair(1, 2.5);  // 打印整数和浮点数
  print_pair("Hello", "World");  // 打印字符串
  return 0;
}

在第一个示例中,T1 被推导为 intT2 被推导为 double。在第二个示例中,T1T2 都被推导为 std::string

arg1, arg2 und nachfolgende Parameter sind die tatsächlichen Parameter der Funktion.

Praktisches Beispiel

    Stellen Sie sich eine Funktion vor, die ein Wertepaar eines beliebigen Typs ausgibt:
  • rrreee Wir können diese Funktionsvorlage auf verschiedene Kombinationen von Typen anwenden: rrreee
  • Im ersten Beispiel T1 wird zu int abgeleitet, und T2 wird zu double abgeleitet. Im zweiten Beispiel werden sowohl T1 als auch T2 zu std::string abgeleitet.
  • Vorteile
  • Die Verwendung von Funktionsvorlagen aus Klassenvorlagen hat die folgenden Vorteile:
🎜Code-Wiederverwendbarkeit: 🎜Keine Notwendigkeit, mehrere Funktionen für jeden Datentyp zu schreiben. 🎜🎜🎜Universalität: 🎜Funktion kann auf jeden Datentyp angewendet werden, der die Anforderungen der Typvorlage erfüllt. 🎜🎜🎜Verbessern Sie die Lesbarkeit des Codes: 🎜Reduzieren Sie doppelten Code und verbessern Sie die Lesbarkeit und Wartbarkeit des Codes. 🎜🎜

Das obige ist der detaillierte Inhalt vonWie verwende ich Klassenvorlagen in C++-Funktionsvorlagen?. 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