C++: Продвинутые темы

Цель урока:
Познакомиться с продвинутыми темами в C++, такими как RAII, умные указатели и лямбда-функции.

Что мы узнаем:
  • Что такое RAII и как его использовать.
  • Умные указатели (std::unique_ptr, std::shared_ptr).
  • Лямбда-функции.

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

RAII (Resource Acquisition Is Initialization)


RAII — это техника, при которой ресурсы (например, память) выделяются при создании объекта и освобождаются при его уничтожении.

Пример использования:
class File {
public:
    File(const std::string& filename) : file(filename, std::ios::in) {}
    ~File() { file.close(); }
private:
    std::ifstream file;
};

Умные указатели


Умные указатели помогают управлять памятью и предотвращают утечки.

Пример использования std::unique_ptr:
std::unique_ptr<int> ptr(new int(10));
std::cout << *ptr << std::endl;

Лямбда-функции


Лямбда-функции позволяют создавать анонимные функции прямо в коде.

Пример использования:
auto add = [](int a, int b) { return a + b; };
std::cout << add(3, 5) << std::endl;

Практическая часть:
Задача 1: Создайте класс с использованием RAII.
class File {
public:
    File(const std::string& filename) : file(filename, std::ios::in) {}
    ~File() { file.close(); }
private:
    std::ifstream file;
};

Задача 2: Используйте умные указатели для управления памятью.
std::unique_ptr<int> ptr(new int(10));
std::cout << *ptr << std::endl;

Задача 3: Создайте лямбда-функцию для вычисления суммы двух чисел.
auto add = [](int a, int b) { return a + b; };
std::cout << add(3, 5) << std::endl;

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

Автор:  19.10.2025 08:50:44 pm