Шаблоны функций C++

искусственный интеллект

определение

функция по модулюСовет — это особая функция,Может вызываться с разными типами, для функций с одной и той же функцией код повторять не нужно, а шаблон функции очень похож на обычную функцию, разница в томТипы могут быть параметризованы

Форма определения шаблона функции****

template    < Тип таблицы формальных параметров >

Формальные параметры типа имеют вид:

                     typename T1 , typename Т2, ..., typename Tn

или class T1 , class Т2, ..., class Tn 

 

шаблон функции черезtemplateиtypenameДва ключевых слова для определения следующим образом:

//template сообщает компилятору C++, что я собираюсь начать универсальное программирование Не сообщайте об ошибке, когда видите T

template <typename T>

void myswap(T &a, T &b)

{

    T c = 0;

    c = a;

    a = b;

    b = c;

    coutendl;

}

Ключевое слово template используется для объявления начала универсального программирования, а ключевое слово typename используется для объявления универсального типа.

перечислить

Существует две формы вызова шаблона функции:

1. Отобразить вызов, например: myswap(a, b);

2. Автоматический вывод типа данных, например: myswap(a, b);

Пример:

#include <iostream>

using namespace std;

 

template <typename T>

void myswap(T &a, T &b)

{

    T c = 0;

    c = a;

    a = b;

    b = c;

    coutendl;

}

 

int main()

{

    int x = 10;

    int y = 20;

 

myswap(x, y); //1 вызов типа отображения шаблона функции

myswap(x, y); //2 автоматический вывод типа

    printf("x:%d y:%d \n", x, y);

}

результат операции: