РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
703 of 815 menu

Параметр class у шаблона

Параметр class используется в объявлении шаблона для того, чтобы указать, что шаблон принимает тип в качестве своего аргумента. В первом параметре мы передаем ключевое слово class, а во втором - имя параметра, который будет обозначать этот тип. Внутри шаблона имя параметра можно использовать так же, как и любой другой тип.

Синтаксис

template <class T> // объявление шаблона

Пример

Давайте создадим шаблонную функцию printType, которая принимает один параметр типа T и выводит его значение:

#include <iostream> using namespace std; template <class T> void printType(T value) { cout << value << endl; } int main() { printType(123); printType("abcde"); return 0; }

Результат выполнения кода:

123 "abcde"

Пример

Параметр class можно использовать и в шаблонных классах. Давайте создадим класс Box, который хранит значение произвольного типа:

#include <iostream> using namespace std; template <class T> class Box { private: T value; public: Box(T v) : value(v) {} T getValue() { return value; } }; int main() { Box<int> box1(123); Box<string> box2("abcde"); cout << box1.getValue() << endl; cout << box2.getValue() << endl; return 0; }

Результат выполнения кода:

123 "abcde"

Пример

В одном шаблоне можно объявить несколько типовых параметров. Давайте создадим шаблонную функцию printPair, которая принимает два значения разных типов:

#include <iostream> using namespace std; template <class T, class U> void printPair(T first, U second) { cout << first << " " << second << endl; } int main() { printPair(123, "abcde"); printPair("abcde", 3.14); return 0; }

Результат выполнения кода:

"123 "abcde"" ""abcde" 3.14"

Смотрите также

  • ключевое слово typename,
    которое также объявляет типовой параметр шаблона
  • ключевое слово template,
    которое объявляет шаблон
  • конструкция template class,
    которая создает шаблонный класс
  • конструкция specialization,
    которая создает специализацию шаблона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить