ОСТАВЬ СВОИ ДАННЫЕ
и мы свяжемся с тобой в ближайшее время!
ЗАПОЛНИ ФОРМУ НИЖЕ
чтобы записаться на пробное занятие "Продвинутый курс C++"

Продвинутый курс C++ в Харькове

Ты детальнее познакомишься с возможностями С++ и усовершенствуешь свои навыки разработки
Старт обучения
17 занятий
Уточняйте
в администрации
5500 грн
КОГДА
СКОЛЬКО
ЦЕНА
2-3 раза в неделю
с 19:00 до 22:00
C++ advan
Для юр. лиц цена указана без НДС
ТРЕБОВАНИЯ К СТУДЕНТАМ:
1
Владение С++ на базовом уровне
2
Наличие ноутбука для занятий в аудиториях

ПРОГРАММА ОБУЧЕНИЯ

Конструкторы деструкторы
    • Правила генерации конструкторов до С++11
    • Что такое rvalue ссылки
    • Перемещающий конструктор и перемещающий оператор присвоения
    • Правила генерации конструкторов и операторов присваивания после С++11
    • Функция std::move. Неправильное применение функции std::move в качестве возвращаемого значения .
    • Разница между объявлением конструкторов и операторов присваивания как приватные методы и объявление их с помощью ключевого слова delete.
    • Зачем вообще нужно писать конструкторы и операторы присваивания как недоступные.
    • Важность объявления конструкторов с помощью ключевого слова default
    • Что такое delegating constructors
    • Простое понимание что такое NRVO и RVO.
    • Проблемы влияния пользовательского конструктора на неявное преобразования типов. Ключевое слово explicit.
    • Reference-qualified методы класса
    Статический полиморфизм
    • Более детальное понимание перегрузки функции. Ключевое понятие mangling, и рассмотрение примера перегрузки на примере таблицы символов.
    • Шаблоны и шаблоны класса. Правила вывода типов для шаблонных параметров. Trailing return type.
    • Проблематика шаблонов. Проблемы инстанцирования. Способы явного инстанцирования.
    • Пример написания класса array, как аналог замены встроенного статического массива
    Динамический полиморфизм
    • Особенности работы с динамическим полиморфизмом (virtual functions).
    • Важные нововведения начиная с С++11 для безопасной работы с динамическим полиморфизмом.
    • Ключевое слово final в контексте виртуальных функций
    • Аргумент по умолчанию и какие он скрывает проблемы в контексте виртуальных функций.
    • Структура type_info.
    • Когда именно полезен динамический полиморфизм
    Более сложные применение шаблонов
    • Структура std::enable_if, зачем это может пригодиться. Элегантное замена сложности std::enable_if начиная с С++17.
    • Метапрограммирования, рассмотрения заголовочного файла <type_traits> как способа получения метаинформации о типе. И применения его на примере простого шаблона.
    • Функция std::forward
    • Шаблоны с переменным числом параметров, понятие свертки.
    • Шаблонные конструкторы.
    • Вспомогательные шаблоны std::pair, шаблон std::tuple. Какие они решают проблемы.
    Написание библиотек на языке С++
    • Что такое разделяемые библиотеки.
    • Что такое статические библиотеки.
    • Разница в написании статических и динамических библиотек
    • Пример написания двух видов библиотек.
    • Написания С++ библиотеки для подключения ее в С код и С++ код
    • Возможные проблемы при написании библиотек.
    • Раздельная компиляция(многомодульность) и линковка.
    Вывод типа в С++(type deduction)
    • Вывод типа с помощью ключевого слова auto, такой ли тип на самом деле?
    • Ключевое слово decltype
    • Константные ссылки, как средство пролонгации времени жизни объекта. И подводные камни.
    Исключительные ситуации
    • Простое понимание исключительных ситуаций. Что такое раскрутка стека.
    • Ключевое слово noexcept. Его особенности.
    • Висячие ссылки и висячие указатели.
    • Исключительные ситуации в конструкторе и деструкторе
    • noexcept деструкторы и конструкторы.
    • Нужны ли исключительные ситуации, и что такое обработка ошибок в стиле С, нужна ли она, и какие ее преимущества в сравнении с исключительными ситуациями.
    Умные указатели
    • Паттерн проектирования RAII
    • Проблемы при использовании С подхода динамического выделения памяти для объектов.
    • Что такое менеджер памяти и простое понимание выделение памяти
    • Виды умных указателей. Какую проблему они решают.
    • Зачем нужны вспомогательные функции(make_unique и т.д.). Какую проблематику они решают.
    • Всегда ли стоит применять умные указатели, возможные проблемы производительности.
    • std::static_pointer_cast, std::dynamic_pointer_cast. В чем их отличие от static_cast и dynamic_cast.
    • Стоит ли проверять созданные умные указатели на nullptr. Когда умные указатели кидают исключения, а когда возвращают nullptr
    Введение в STL
    • Что такое STL.
    • Немного о структуре STL.
    • Стоит ли знать всю библиотеку STL.
    Хочешь ознакомиться с полной программой обучения?
    Оставь свой email и мы вышлем тебе полную программу обучение сегодня же!
    ЗАБРОНИРУЙ МЕСТО НА БЛИЖАЙШИЙ КУРС
    Осталось 14 места из 15
    C++ advan
    ЗАБРОНИРУЙ МЕСТО НА БЛИЖАЙШИЙ КУРС
    Осталось 14 места из 15
    C++ advan
    КУРСЫ ПО НАПРАВЛЕНИЮ

    Programming base

    Научим понимать принципы программирования и работать с простым кодом
    Время обучения
    12 занятий
    Cтарт
    Уточняйте в администарции
    Курс
    PROGRAMMING
    КУРС

    C++ base

    Знакомство с принципами программирования и особенностями C++ разработки на практических примерах
    Время обучения
    16 занятий
    Cтарт
    16.01.2020
    Курс
    C++BASE
    КУРС
    ОСТАЛИСЬ ВОПРОСЫ?
    Оставь свой номер телефона, и наш консультант свяжется с тобой чтобы помочь в выборе направления и дать ответы на все вопросы