Курсы C/C++
Общая информация Расписание и стоимость
Условия обучения
Проведение занятий Преподаватели Учебные материалы Документы об окончании Отзывы слушателей

Другие курсы

Курсы C++ Курсы Java Курсы C# (.NET) Курсы Microsoft C# (.NET) Программирование Android Курсы Web-технологий Программирование Linux Тестирование ПО Программирование микроконтроллеров

Обратная связь

+7 (812) 703-02-02 Форум
Печать

DEV-C20. Объектно-ориентированное программирование. Базовый уровень. Язык С++


График обучения: 40 ак.часов (10 дней)

Начало занятий:

    13.11.2017, 1800

Записаться на курс

    13.11.2017, 1800

Записаться на курс

Аннотация

Продолжая линейку курсов по разработке ПО, курс знакомит с концепцией объектно-ориентированного программирования - одной из наиболее популярных и востребованных рынком концепций разработки программного обеспечения. В курсе изучаются основы объектно-ориентированного программирования, поддержка ООП в рамках языка C++. К читаемому курсу прилагается авторское пособие.

Согласно новому стандарту С++11 ядро языка С++ было доработано в целях повышения эффективности. В языке появились абсолютно новые понятия, для которых еще нет устоявшихся русских эквивалентов, такие как “move semantics”, “rvalue reference” и т.д. Соответственно был дополнен материал предлагаемого курса.

В этом разделе курса слушатель осваивает отличный (от традиционного процедурного) подход к построению программы – программирование в объектах, когда центр тяжести для разработчика программного обеспечения перемещается с написания кода как такового на описание свойств объектов и связей между ними средствами языка С++ (классами).

Длительность курса - 10 занятий: 5 лекций и 5 практик.

Занятия проводятся 3 раза в неделю с 14:00 до 17:20

Вступительное тестирование – бесплатно.

Документы об окончании обучения

  • Сертификат учебного центра
    Сертификат учебного центра
  • Удостоверение повышении квалификации (выдается лицам имеющим высшее или среднее профессиональное образование)
    Удостоверение повышении квалификации (выдается лицам имеющим высшее или среднее профессиональное образование)

Преподаватели

Знания и умения, полученные в результате обучения

  • Навыки выполнения всех этапов разработки приложения в среде Visual C++ MS Developer Studio.net: от написания исходного текста программы, через получение исполняемого модуля – к отладке, позволяющей отыскать и устранить ошибки программирования.
  • Создание агрегатных пользовательских типов данных - классов.
  • Построение иерархий классов.
  • Создание на базе классов сложных структур данных: списков, ассоциативных массивов.

Курсы, в освоении которых помогут приобретенные знания:

Расписание

Начало курса Окончание курса Даты занятий Время занятий Номер аудитории Преподаватель
13.11.2017 04.12.2017 13.11.2017
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №323 Полубенцева Марина Игоревна Записаться на курс
15.11.2017
Среда
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталия Николаевна
17.11.2017
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Полубенцева Марина Игоревна
20.11.2017
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталия Николаевна
22.11.2017
Среда
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Полубенцева Марина Игоревна
24.11.2017
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталия Николаевна
27.11.2017
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №323 Полубенцева Марина Игоревна
29.11.2017
Среда
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталия Николаевна
01.12.2017
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №323 Полубенцева Марина Игоревна
04.12.2017
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталия Николаевна
13.11.2017 04.12.2017 13.11.2017
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №323 Полубенцева Марина Игоревна Записаться на курс
16.11.2017
Четверг
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталия Николаевна
17.11.2017
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Полубенцева Марина Игоревна
20.11.2017
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталия Николаевна
22.11.2017
Среда
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №102 Полубенцева Марина Игоревна
27.11.2017
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №323 Полубенцева Марина Игоревна
27.11.2017
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталия Николаевна
30.11.2017
Четверг
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталия Николаевна
01.12.2017
Пятница
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №323 Полубенцева Марина Игоревна
04.12.2017
Понедельник
1800-2120

В рамках комплексной программы DEV-С-CP+. Расширенная комплексная программа «Разработчик прикладного программного обеспечения (Языки С и C++)», при наличии свободных мест

Аудитория №232 Костина Наталия Николаевна

Стоимость

Дата Физ. лица, руб. Юр. лица, руб.
Без скидки Cкидка 10%* Cкидка 15%** Без скидки Cкидка 10% Cкидка 15%
Цена c 18.01.2016 15900 14300 13500 19900 17900 16900

*Скидка 10% для ранее обучавшихся, при одновременной оплате 2х курсов, а также по акциям.
**Скидка 15% при одновременной оплате 3х и более курсов.
Примечание. Студентам ВУЗов Санкт-Петербурга очной формы обучения скидка до 25%.
Скидки не предоставляется на курсы с дистанционной формой обучения.
Скидки не предоставляется на комплексные и модульные программы обучения.

Требования к начальному уровню знаний

  • Элементарные понятия архитектуры персонального компьютера.
  • Знание базовых понятий языков С и С++: процедурные возможности, использование заголовочных файлов, управление памятью, использование указателей и ссылок, массивов и структур.

Слушатели, закончившие курс «DEV-C10. Процедурное программирование. Языки С/C++» принимаются без предварительного тестирования. Для остальных слушателей предусмотрено бесплатное собеседование с преподавателем для проверки знаний в области процедурного программирования, синтаксиса языка C и навыков разработки программ с использованием языка С.

Курсы, обеспечивающие достаточный начальный уровень знаний:

Предварительное тестирование

Тест №ВКТ-108 Алгоритмизация и основы программирования

  1. Необходимо знать следующие понятия:
       
    • алгоритм;
    •  
    • программа;
    •  
    • исполнитель;
    •  
    • линейный алгоритм;
    •  
    • ветвящийся алгоритм;
    •  
    • циклический алгоритм;
    •  
    • основной алгоритм;
    •  
    • вспомогательный алгоритм (подпрограмма);
    •  
    • процедура;
    •  
    • функция;
    •  
    • вызов;
    •  
    • переменная;
    •  
    • имя переменной;
    •  
    • тип переменной;
    •  
    • значение переменной;
    •  
    • формальные параметры;
    •  
    • фактические параметры;
    •  
    • область видимости
    •  
    • время жизни переменных;
    •  
    • массивы;
    •  
    • арифметические выражения;
    •  
    • логические выражения.
  2. Необходимо знать и уметь использовать следующие операторы:
       
    • оператор присваивания;
    •  
    • оператор условия;
    •  
    • оператор цикла;
    •  
    • оператор блока.
  3. Необходимо уметь создавать на любом алгоритмическом языке:
       
    • простейшие программы, использующие 2-3 подпрограммы;
    •  
    • подпрограммы (процедуры и функции);
    •  
    • осуществлять вызовы подпрограмм.

Тест №ВПТ-215 Процедурное программирование. Языки С/C++.

  1. Элементарные понятия архитектуры персонального компьютера.
  2. Знание базовых понятий языков С и С++:
  3. процедурные возможности,
  4. использование заголовочных файлов,
  5. управление памятью,
  6. использование указателей и ссылок,
  7. массивов и структур.
  8. Знание и умение программирования на языке C/C++

Программа курса

ЛЕКЦИЯ 1

  • Концепция объектно-ориентированного программирования.
  • Отличия процедурного и ООП. Концепция классов в С++.
  • Понятие класса.
  • Объявление класса. Данные-члены класса + функции-члены класса = инкапсуляция. Оператор 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

  • ООП.
  • Объявление класса. Создание экземпляра класса. Вызов методов класса посредством объекта.
  • Конструктор по умолчанию. Перегрузка конструкторов и методов класса.
  • Конструктор копирования.
  • Спецификаторы доступа. Инкапсуляция.
  • Передача экземпляра класса в качестве параметра функции (по значению, по ссылке). Возвращение объекта класса по значению.
  • Указатель на класс. Использование селектора «->».
  • «Нетривиальные» классы. Конструктор + деструктор = функциональное замыкание. Конструктор копирования для нетривиальных классов.
  • Массив объектов класса. Массив указателей на объекты класса.

Индивидуальное домашнее задание по пройденному материалу N1

ПРАКТИКА 2

  • Простое наследование. Аргументы конструктора, передаваемые в базовый класс.
  • Виртуальные функции.
  • Виртуальные деструкторы.
  • Оператор разрешения области видимости и наследование.
  • Абстрактный базовый класс.
  • Перегрузка операторов.
  • Перегрузка операторов с помощью глобальных friend-функций.
  • Перегрузка операторов с помощью методов класса.

Индивидуальное домашнее задание по пройденному материалу N2

ПРАКТИКА 3

  • Внедренные объекты класса. Передача параметров при конструировании внедренных объектов.
  • Реализация двухсвязного объектно-ориентированного списка.

Индивидуальное домашнее задание по пройденному материалу N3

ПРАКТИКА 4

  • Статические члены класса. Производящие функции. Защищенный конструктор.
  • Реализация контроля за всеми созданными объектами посредством статических данных и статических методов базового класса.

ПРАКТИКА 5

Экзамен по курсу.