На главную
|
Все лекции
Конспект лекций по курсу ЯП
Лекция 1
История C++
Простейшая программа
Пространства имен
Типы данных
Способы инициализации переменных
Неявное преобразование типов
Основные операции
Условный оператор
Тернарная условная операция
Оператор выбора
Операторы цикла
Цикл while
Цикл do-while
Цикл for
Оператор , (запятая)
Лекция 2
Функции
Стандартные функции
inline-функции
Ссылки
Передача аргумента в функцию по ссылке
Структуры
Передача структуры в функцию
Лекция 3
Многофайловая компоновка
Заголовочные файлы
Содержимое заголовочных файлов
Глобальные описания в C++ и необходимость пространств имен
Пространства имен и заголовочные файлы
Основные этапы сборки проекта
Лекция 4
Препроцессор
Основные директивы препроцессора
Условная компиляция
Стражи включения (include guards)
Перечисления
Перечисления в C++98
Перечисления в C++11
Использование перечислений
Массивы
Лекция 5
Строки в стиле C
Строки в стиле C++
Ввод-вывод
Как передавать в функции C- и C++-строки
Двумерные массивы
Передача в функции двумерных массивов
Определение типов в C++
Указатели и адреса
Указатели и ссылки
Передача параметров в функции
Указатель void*
Указатели на структуры
Указатели и константность
Константные указатели
Лекция 6
Ссылки на константы
Указатели и массивы
Операции при работе с указателями
Идиома *p++
Передача массива в функцию с помощью указателя
С-строки и указатели
Лекция 7
Стандартные функции для работы с C-строками
Контроль памяти при работе с этими функциями
Указатели и динамическая память
Ошибки при работе с динамической памятью
Массивы в динамической памяти(динамические массивы)
Как передавать динамические массивы в функции
Двумерные динамические массивы
Выделение памяти для статических массивов
Выделение памяти для динамических массивов
Передача двумерного динамического массива в функции
Возврат памяти
Динамические структуры данных
Шаблоны структур
Лекция 8
Линейный односвязный список в динамической памяти
Добавление элемента в начало односвязного списка
Где хранить шаблоны функций, структур и классов.
Отличие шаблонов C++ от обобщений .NET
Цикл по односвязному списку
Указатели на функции
Действие передаваемое параметром (callback)
Лекция 9
Освобождение памяти занимаемой списком
Векторы и строки (С++)
Работа со строками
Векторы
Классы и перегрузка операций
Перегрузка бинарной операции
Передача объектов в функцию
Лекция 10
Конструктор со списком инициализации
Перегрузка операций
Перегрузка операции сравнения на равенство
Перегрузка операции вывода в поток (чтения из потока)
Перегрузка арифметических операций
Лекция 11
Перегрузка унарных операций
Префиксная унарная операция (@a ++a --a) (общий случай)
Постфиксная унарная операция (a@ a++ a--)
Перегрузка операции !=
Класс динамического массива
Константные функции-члены
Перегрузка операции []
Деструктор и его необходимость
Лекция 12
Конструктор копии
Три случая, когда вызывается конструктор копий
Return Value Optimization
Функции-члены, которые генерируются «молча»
Конструктор по-умолчанию
Операция копирующего присваивания
Идиома copy-and-swap
Лекция 13
Метод resize() в классе myvector
Класс matrix
Реализация класса matrix
Операция доступа по индексу в matrix
Конструктор копий и operator= для класса matrix
Лекция 14
move-конструкторы и move-operator= (C++11)
Запрет генерации стандартных операторов
Класс frac дроби
Конструктор преобразования
Явные конструкторы преобразования
Операции приведения типа
Лекция 15
Перегрузка операций ввода-вывода
Наследование
Порядок вызова конструкторов и деструкторов
Преобразование в иерархии "предок-потомок"
Лекция 16
Downcast
Полиморфизм
Виртуальные методы в C++
Цена виртуальности
Деструкторы и полиморфизм
Полиморфные контейнеры и клонирование
Система RTTI (Runtime Type Identification)
dynamic_cast
Операция typeid и структура type_info
Лекция 17
Стандартная библиотека C++
Иерархия потоковых классов ввода/вывода
Файловые потоки
Строковые потоки
Стандартная библиотека шаблонов (STL)
Общая характкристика STL
Некоторые алгоритмы
Лекция 18
Откуда брать итераторы
Итераторы в C++11
Концепты
Вложенные типы
Второй случай использования typename
Вложенный класс
Лекция 19
Итератор списка
Основные контейнеры STL
Конструкторы контейнеров
Алгоритмы
Алгоритм for_each
Лекция 20
Захват переменных из внешнего контекста
Сумма элементов контейнера с помощью for_each
Объекты функции (функторы)
Присваивание лямбда функций переменной
Виды итераторов
Алгоритм find
Алгоритм find_if
Лекция 21
all_of
equal
mismatch
search
copy
Итераторы вставки
Итерторы потоков
Итератор потока ввода
Лекция 22
Set и Map
Итерация по set
Требования от множества
Ассоциативный словарь
Лекция 23
Алгоритмы модифицирующие последовательность