Познакомиться с продвинутыми темами в 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++. Эти знания помогут вам создавать более сложные и эффективные программы.