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

Другие курсы

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

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

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

DEV-C22. Стандарт С++11 для прикладного программирования

Продолжительность обучения: 40 ак.ч. очно
График обучения: 5 дней по 8 ак.ч.

Курс пока не поставлен в расписание. Оставить заявку

Аннотация

Стандарт С++11  - это первое значительное изменение стандарта языка С++ с 1998-го года. Многие полезные нововведения были позаимствованы из популярной в среде программистов на С++ библиотеки Boost и согласно новому стандарту стали «родными» в реализации С++, то есть поддерживаются как компилятором, так и стандартной библиотекой. В результате – перед нами практически новый язык программирования, возможностями которого пока еще мало кто пользуется, а некоторые программисты даже не в курсе тех новшеств, которые появились в языке С++. Целью данного курса является освоение новых концепций и программных средств, добавленных в язык программирования С++ согласно стандарту С++11. Также в курсе рассматриваются изменения, включенные в стандарт С++11 в 2014 году.

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

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

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

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

После окончания обучения программист сможет:

  • повысить эффективность работы программы за счет использования семантики перемещения (move semantics)
  • уменьшать количество дублируемого кода посредством семантики продвижения (forwarding)
  • увеличивать гибкость программ за счет использования шаблонов с переменным числом параметров (variadic  templates)
  • использовать для поддержки локальных действий  лямбда функции;
  • распараллеливать задачи посредством новой многопоточной составляющей стандартной библиотеки
  • а также использовать другие удобные и полезные новшества, появившиеся в С++

Расписание

Курс пока не поставлен в расписание. Оставить заявку на курс

Стоимость

Дата Физ. лица, руб. Юр. лица, руб.
Без скидки Cкидка 10%* Cкидка 15%** Без скидки Cкидка 10% Cкидка 15%
Цена c 17.10.2017 20000 18000 17000 24400 21950 20700

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

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

  • Уверенное манипулирование классами
  • Владение приемами обобщенного программирования (templates)

Знания оцениваются по результатам выполнения тестового задания.

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

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

Тест №ВПТ-227 DEV-C22. Стандарт С++11 для прикладного программирования

Уверенное манипулирование классами, владение приемами обобщенного программирования (templates)

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

Тема 1. Обзор новых возможностей ядра языка С++ согласно стандарту С++11

  • Новые типы данных (longlong, нулевой указатель – nullptr, пользовательские литералы)
  • Проверка времени компиляции (static_assert)
  • Универсальные cписки инициализации
  • Циклы по коллекциям
  • Вывод типа посредством  типа инициализирующего значения или выражения (auto и decltype)
  • Обобщенные константные выражения (constexpr)
  • Предотвращение генерации исключений (noexcept)

Тема 2. Изменения в объявлениях методов классов

  • Явное указание компилятору генерации методов класса по умолчанию (default)
  • Явная перегрузка виртуальных методов (override, final)
  • Явный запрет вызова метода (delete).
  • Наследуемые конструкторы (inherited constructors), делегирующие конструкторы
  • Инициализация членов классов при объявлении

Тема 3. Новые классы STL поддержки указателей

  • Шаблон класса unique_ptr
  • Шаблон класса shared_ptr
  • Шаблон класса weak_ptr

Тема 4. Правосторонние ссылки (rvalue reference). Семантика перемещения (move semantics)

  • Правосторонние ссылки (rvalue reference)
  • Цель введения семантики перемещения
  • Move конструкторы копирования, move операторы присваивания
  • Семантика перемещения и внедрение
  • Семантика перемещения и наследование

Тема 5. Семантика продвижения типов (forwarding)

  • Цели введения продвижения типа
  • forward при наследовании
  • forward при внедрении

Тема 6. Синонимы шаблонов и ключевое слово using

  • Понятие псевдонима типа typedef
  • typedef  и using применительно к шаблонам

Тема 7. Внешние шаблоны (extern templates)

  • Инстанцирование обычных шаблонов
  • Внешние шаблоны

Тема 8. Шаблоны с переменным числом параметров (variadic templates)

  • Шаблоны функций с переменным числом параметров
  • Шаблоны классов с переменным числом параметров
  • Шаблон tuple

Тема 9. Лямбда функции

  • Реализация лямбда функции
  • Синтаксис лямбда функции
  • Специфика лямбда функции
  • Рекурсия и лямбда функции

Тема 10. Работа со временем

  • Средства измерения времени (system_clock, monotonic_clock, high_resolution_clock)
  • Хранение временных интервалов (duration)

Тема 11. Распараллеливание задач

  • Средства параллельного выполнения задач (thread)
  • Способы параллельного выполнения задач
  • Способы синхронизации
  • Синхронизирующие объекты (mutex, timed_mutex, recursive_mutex, recursive_timed_mutex, shared_timed_mutex)
  • Алгоритмы STL и параллельное выполнение

Тема 12. Локальная память потока (TLS)

  • Проблемы обмена данными между потоками
  • Обеспечение сохранности индивидуальных данных потока