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
...

C++: Функции и модули

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

Что мы узнаем:
  • Что такое функции и как их использовать.
  • Передача аргументов и возврат значений.
  • Модули и заголовочные файлы.

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

Что такое функции?


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

Пример объявления функции:
int add(int a, int b) {
    return a + b;
}

Передача аргументов и возврат значений


Функции могут принимать аргументы и возвращать значения.

Пример:
int result = add(3, 5);
std::cout << result;  // Выведет 8

Модули и заголовочные файлы


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

Пример заголовочного файла math.h:
#ifndef MATH_H
#define MATH_H

int add(int a, int b);
#endif

Пример реализации в ma...

MySQL: Скобки

Скобки в SQL-запросах, включая MySQL, играют важную роль в управлении порядком выполнения операций и группировке условий. Они помогают сделать запросы более понятными и избежать ошибок. В этой статье мы рассмотрим, как и когда использовать скобки в MySQL.

Группировка условий в WHERE


Скобки используются для группировки условий в операторе WHERE, чтобы явно указать порядок выполнения логических операций (AND, OR).

Пример:
SELECT *
FROM employees
WHERE (department = 'Sales' OR department = 'Marketing') AND salary > 5000;

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

Группировка в подзапросах


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

Пример:
SELECT *
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

Здесь скобки выделяют подзапрос, который вычисляет среднюю зарплату.

Гр

...