У вас уже есть заявка на текущий период.
Если вы хотите, чтобы данная программа участвовала в розыгрыше гранта в этом месяце, необходимо добавить ее в папку "Интересные мероприятия".
Или создайте заявку на другой период.
Продолжая линейку курсов по разработке ПО, курс знакомит с концепцией объектно-ориентированного программирования - одной из наиболее популярных и востребованных рынком концепций разработки программного обеспечения. В курсе изучаются основы объектно-ориентированного программирования, поддержка ООП в рамках языка C++. К читаемому курсу прилагается авторское пособие.
Согласно новому стандарту С++11 ядро языка С++ было доработано в целях повышения эффективности. В языке появились абсолютно новые понятия, для которых еще нет устоявшихся русских эквивалентов, такие как "move semantics", "rvalue reference" и т.д. Соответственно был дополнен материал предлагаемого курса.
В этом разделе курса слушатель осваивает отличный (от традиционного процедурного) подход к построению программы – программирование в объектах, когда центр тяжести для разработчика программного обеспечения перемещается с написания кода как такового на описание свойств объектов и связей между ними средствами языка С++ (классами).
Отличия процедурного и ООП. Концепция классов в С++.
Понятие класса.
Объявление класса. Данные-члены класса + функции-члены класса = инкапсуляция. Оператор sizeof и размер класса.
Спецификаторы доступа.
Создание экземпляра класса.
Реализация методов класса. Доступ к public членам класса посредством объекта, селектор «.».Указатель this.
Анатомия вызова нестатического метода класса.
Ключевое слово сonst и методы класса.
Методы, возвращающие константные значения. Константные методы класса. Ключевое слово mutable Константные аргументы.
Конструктор класса.
Понятие конструктора. Конструктор по умолчанию. Конструктор с параметрами. Перегрузка конструкторов. Конструктор с параметрами по умолчанию. Возможные конфликты при использовании параметров по умолчанию. Специфика записи при вызове конструктора с одним параметром. Конструкторы и ...
Отличия процедурного и ООП. Концепция классов в С++.
Понятие класса.
Объявление класса. Данные-члены класса + функции-члены класса = инкапсуляция. Оператор sizeof и размер класса.
Спецификаторы доступа.
Создание экземпляра класса.
Реализация методов класса. Доступ к public членам класса посредством объекта, селектор «.».Указатель this.
Анатомия вызова нестатического метода класса.
Ключевое слово сonst и методы класса.
Методы, возвращающие константные значения. Константные методы класса. Ключевое слово mutable Константные аргументы.
Конструктор класса.
Понятие конструктора. Конструктор по умолчанию. Конструктор с параметрами. Перегрузка конструкторов. Конструктор с параметрами по умолчанию. Возможные конфликты при использовании параметров по умолчанию. Специфика записи при вызове конструктора с одним параметром. Конструкторы и модификатор explicit. Конструкторы базовых типов. Динамическое создание объектов и вызов конструктора.
Деструктор.
Специфика объявления деструктора как метода класса. Деструктор – метод класса. Конструктор + деструктор = функциональное замыкание.
Создание и уничтожение объектов с разным способом хранения.
Лекция 2
Конструктор копирования.
Создание нового объекта по существующему объекту. Передача объектов в качестве параметров функции. Возвращение объекта по значению. Move конструктор копирования (новый стандарт С++11).
Проблемы, которые могут возникнуть при использовании конструктора копирования по умолчанию и способы их решения.
Указатель на класс.
Указатель на объект класса. Доступ к членам класса посредством указателя. Селектор «->».
Указатель this.
Массивы и классы.
Массивы объектов класса. Массивы указателей на объекты класса.
Поля битов. Специфика использования.
Взаимоотношения между классами. Наследование.
Виды наследования. Простое (single) наследование. Объявление производного класса. Спецификатор protected в базовом классе.
Спецификаторы наследования. Порядок вызова конструкторов и деструкторов. Передача параметров базовому классу при конструировании.
Специфика передачи параметров конструктору копирования базового класса.
Лекция 3
Открытое наследование.
Правила объектно-ориентированного проектирования. Пример ошибочного построения иерархии классов.
Полиморфизм.
Раннее и позднее связывание. Виртуальные функции. Механизм вызова виртуальной функции. Виртуальные деструкторы. Чисто виртуальные функции и абстрактные классы. Наследование интерфейса и наследование реализации при открытом наследовании.
FRIEND (привилегированные) функции и классы.
Внешняя friend-функция. Friend-функция, являющаяся методом другого класса. Friend-класс.
Лекция 4
Перегрузка операторов.
Перегрузка операторов для базовых и пользовательских типов. Правила перегрузки унарных и бинарных операторов. Порядок поиска компилятором функции. Формы перегрузки операторов. Перегрузка оператора с помощью метода класса. Перегрузка с помощью метода класса. Специфика перегрузки оператора присваивания. Move оператор присваивания (новый стандарт С++11). Оператор присваивания и нетривиальные классы. Оператор присваивания и перегрузка. Оператор[] с проверкой выхода за границы массива. Оператор ++ (--).Оператор () и функциональные объекты.
Перегрузка с помощью глобальной friend-функции. Пример перегрузки оператора << (вывод) в библиотечный ostream.
Внедряемые объекты.
Конструирование и уничтожение встроенных объектов. Передача параметров конструктора встроенным объектам. Список инициализации.
Специфика инициализации константных объектов и ссылок. Порядок инициализации членов класса. Пример «ассоциативного массива». Указатели на объекты в качестве членов данных класса. Предварительное неполное объявление класса (forward reference). Ссылки на указатели.
Лекция 5
Статические члены класса.
Ключевое слово static. Статические данные. Статические функции: для доступа извне к private или protected static-данным класса, для «косвенного» создания объекта.
Структуры и объединения языка C++.
Ключевые слова struct и union. Отличия структур и классов.
Рекомендации по использованию Тип данных VARIANT. Анонимные объединения.
Множественное наследование.
Создание объектов производных классов при множественном наследовании. Полиморфизм и множественное наследование. Проблемы, возникающие при множественном наследовании.
Практика 1
ООП.
Объявление класса. Создание экземпляра класса. Вызов методов класса посредством объекта.
Конструктор по умолчанию. Перегрузка конструкторов и методов класса.
Конструктор копирования.
Спецификаторы доступа. Инкапсуляция.
Передача экземпляра класса в качестве параметра функции (по значению, по ссылке). Возвращение объекта класса по значению.
Есть акция! Скидка студентам на обучение на краткосрочных курсах всех направлений. Скидка 25% студентам Политеха (СПбПУ). Скидка 15% студентам других ВУЗов Санкт-Петербурга. Скидка действия до 1 сентября 2016 года.