DANFA

C++: Шаблоны и обобщённое программирование

Цель урока:
Познакомиться с шаблонами в C++ и научиться использовать их для создания обобщённых функций и классов.

Что мы узнаем:
  • Что такое шаблоны и как их использовать.
  • Шаблоны функций и классов.
  • Стандартная библиотека шаблонов (STL).

Теоретическая часть:

Что такое шаблоны?


Шаблоны позволяют создавать обобщённые функции и классы, которые могут работать с различными типами данных.

Пример шаблона функции:
template <typename T>
T add(T a, T b) {
    return a + b;
}

Шаблоны классов


Шаблоны классов позволяют создавать классы, которые могут работать с различными типами данных.

Пример шаблона класса:
template <typename T>
class Stack {
private:
    T* data;
    int size;
public:
    Stack(int size) : size(size) {
        data = new T[size];
    }

    ~Stack() {
        delete[] data;
    }

    void push(T value) {
        // Реализация
    }

    T pop() {
        // Реализация
    }
};

Стандартная библиотека шаблонов (STL)


STL предоставляет множество готовых шаблонов, таких как контейнеры (vector, list, map) и алгоритмы (sort, find).

Пример использования vector:
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    for (int num : vec) {
        std::cout << num << std::endl;
    }
    return 0;
}

Практическая часть:
Задача 1: Создайте шаблон функции для вычисления суммы двух чисел.
template <typename T>
T add(T a, T b) {
    return a + b;
}

Задача 2: Создайте шаблон класса для стека.
template <typename T>
class Stack {
private:
    T* data;
    int size;
public:
    Stack(int size) : size(size) {
        data = new T[size];
    }

    ~Stack() {
        delete[] data;
    }

    void push(T value) {
        // Реализация
    }

    T pop() {
        // Реализация
    }
};

Итог урока:
Сегодня мы узнали, как использовать шаблоны в C++. Эти знания помогут вам создавать более гибкие и универсальные программы.

Автор:  17.10.2025 08:10:14 pm