C++: Исключения и обработка ошибок

Цель урока:
Познакомиться с исключениями в C++ и научиться обрабатывать ошибки.

Что мы узнаем:
  • Что такое исключения и как их обрабатывать.
  • Блоки try, catch, throw.
  • Стандартные исключения.

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

Что такое исключения?


Исключения — это способ обработки ошибок в программе. Они позволяют перехватывать и обрабатывать ошибки, не останавливая программу.

Пример использования:
try {
    int result = 10 / 0;
} catch (const std::exception& e) {
    std::cout << "Ошибка: " << e.what() << std::endl;
}

Блоки try, catch, throw


Блок try содержит код, который может вызвать исключение. Блок catch перехватывает и обрабатывает исключение. Оператор throw генерирует исключение.

Пример использования:
try {
    throw std::runtime_error("Ошибка!");
} catch (const std::exception& e) {
    std::cout << "Ошибка: " << e.what() << std::endl;
}

Стандартные исключения


В C++ есть множество стандартных исключений, таких как std::runtime_error, std::logic_error, std::out_of_range.

Пример ...

C++: Работа с файлами

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

Что мы узнаем:
  • Как читать и записывать данные в файлы.
  • Работа с потоками ввода-вывода.

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

Чтение и запись данных


В C++ для работы с файлами используются потоки ввода-вывода.

Пример записи в файл:
#include <fstream>

int main() {
    std::ofstream file("example.txt");
    file << "Привет, мир!" << std::endl;
    file.close();
    return 0;
}

Пример чтения из файла:
#include <fstream>

int main() {
    std::ifstream file("example.txt");
    std::string line;
    while (std::getline(file, line)) {
        std::cout << line << std::endl;
    }
    file.close();
    return 0;
}

Работа с потоками


Потоки ввода-вывода позволяют удобно работать с файлами и другими источниками данных.

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

int main() {
    std::ifstream file("example.txt");
    std::string line;
    while
...

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 предоставляет множество готовых...

C++: Объектно-ориентированное программирование

Цель урока:
Познакомиться с основами объектно-ориентированного программирования (ООП) в C++, а также научиться создавать классы и объекты.

Что мы узнаем:
  • Что такое классы и объекты.
  • Принципы ООП: инкапсуляция, наследование, полиморфизм.
  • Конструкторы и деструкторы.

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

Что такое классы и объекты?


Классы — это шаблоны для создания объектов, а объекты — это экземпляры классов.

Пример класса:
class Dog {
public:
    void bark() {
        std::cout << "Гав!" << std::endl;
    }
};

Пример использования:
Dog myDog;
myDog.bark(); // Выведет "Гав!"

Принципы ООП


  • Инкапсуляция: сокрытие деталей реализации.
  • Наследование: возможность унаследовать свойства и методы родительского класса.
  • Полиморфизм: способность объектов иметь одно и то же имя метода, но разное поведение.

Пример наследования:
class Animal {
public:
    virtual void speak() {
        std::cout << "Звуки животного" << std::endl;
    }
};

class Dog : public Animal {
public:
    void
...

C++: Указатели и ссылки

Цель урока:
Познакомиться с указателями и ссылками в C++, а также научиться использовать их для работы с памятью.

Что мы узнаем:
  • Что такое указатели и как их использовать.
  • Различия между указателями и ссылками.
  • Динамическое выделение памяти.

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

Что такое указатели?


Указатели — это переменные, которые хранят адрес другой переменной.

Пример объявления указателя:

Пример использования:
int num = 10;
int* ptr = #  // ptr указывает на num
std::cout << *ptr;  // Выведет 10

Ссылки


Ссылки — это альтернативный способ работы с переменными, который позволяет избежать использования указателей.

Пример объявления ссылки:
int num = 10;
int& ref = num;  // ref ссылается на num
std::cout << ref;  // Выведет 10

Динамическое выделение памяти


В C++ можно динамически выделять память с помощью операторов new и delete.

Пример динамического выделения памяти:
int* ptr = new int(10);  // Выделяем память для int
std::cout << *ptr;  // Выведет 10
delete
...