Компьютерные науки

Язык программирования C++ для профессионалов

Программа об углубленном изучении языка C++. Охватывает множественное наследование, параметризованные типы и потоковый ввод-вывод.
Студентов 7376 Выпускников 623 Для специалистов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Программирование
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание В учебной программе рассматривается профессиональный взгляд на язык C++ как инструмент системной разработки. Изучаются перегрузка операций, обработка исключений, проектирование библиотек, механизмы создания производных классов и развитие архитектуры сложных проектов. Изучение выстроено вокруг глубокого понимания семантики языка и его библиотечной инфраструктуры. Программа ориентирована на опытных программистов, которым необходимо досконально освоить внутреннюю логику C++ независимо от сред исполнения.
Цели
  • Раскрыть концептуальные основы и тонкости языка C++ от первого лица.
  • Сформировать навыки проектирования надежных и масштабируемых систем.
  • Познакомить с передовыми механизмами обработки исключений и шаблонов.
Чему я научусь?
  • Использовать множественное наследование и перегрузку сложных операций.
  • Проектировать и развивать собственные библиотеки классов на C++.
  • Управлять потоками и реализовывать надежный механизм обработки особых ситуаций.

Авторы

Страуструп Бьерн
Страуструп Бьерн
Руководитель отдела исследований в области крупномасштабного программирования компании AT&T Labs.
Чему я научусь?
  • Использовать множественное наследование и перегрузку сложных операций.
  • Проектировать и развивать собственные библиотеки классов на C++.
  • Управлять потоками и реализовывать надежный механизм обработки особых ситуаций.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 О курсе
2 Краткий обзор С++ В этой лекции содержится краткий обзор основных концепций и конструкций языка С++. Он служит для беглого... В этой лекции содержится краткий обзор основных концепций и конструкций языка С++. Он служит для беглого знакомства с языком. Подробное описание возможностей языка и методов программирования на нем дается в следующих лекциях. Разговор ведется в основном вокруг абстракции данных и объектно-ориентированного программирования, но перечисляются и основные возможности процедурного программирования. ещё
Краткий обзор С++ тест для курса Язык программирования C++ для профессионалов 60 мин
3 Описания и константы В данной лекции описаны основные типы ( char, int, float и т.д.) и способы построения на... В данной лекции описаны основные типы ( char, int, float и т.д.) и способы построения на их основе новых типов (функций, векторов, указателей и т.д.). Описание вводит в программу имя, указав его тип и, возможно, начальное значение. В этой лекции вводятся такие понятия, как описание и определение, типы, область видимости имен, время жизни объектов. Даются обозначения литеральных констант С++ и способы задания символических констант. Приводятся примеры, которые просто демонстрируют возможности языка. Более осмысленные примеры, иллюстрирующие возможности выражений и операторов языка С++, будут приведены в следующей лекции. В этой лекции лишь упоминаются средства для определения пользовательских типов и операций над ними. Они обсуждаются в лекциях 5 и 7. ещё
Описания и константы тест для курса Язык программирования C++ для профессионалов 60 мин
4 Выражения и операторы С++ имеет сравнительно небольшой набор операторов, который позволяет создавать гибкие структуры управления, и богатый набор операций... С++ имеет сравнительно небольшой набор операторов, который позволяет создавать гибкие структуры управления, и богатый набор операций для работы с данными. Основные их возможности показаны в этой лекции на одном завершенном примере. Затем приводится сводка выражений, и подробно обсуждаются операции преобразования типа и размещение в свободной памяти. Далее дана сводка операторов, а в конце лекции обсуждается выделение текста пробелами и использование комментариев. ещё
Выражения и операторы тест для курса Язык программирования C++ для профессионалов 60 мин
5 Функции Все нетривиальные программы состоят из нескольких раздельно транслируемых единиц, по традиции называемых файлами. В этой лекции... Все нетривиальные программы состоят из нескольких раздельно транслируемых единиц, по традиции называемых файлами. В этой лекции описано, как раздельно транслируемые функции могут вызывать друг друга, каким образом они могут иметь общие данные, и как добиться непротиворечивости типов, используемых в разных файлах программы. Подробно обсуждаются функции, в том числе: передача параметров, перегрузка имени функции, стандартные значения параметров, указатели на функции и, естественно, описания и определения функций. В конце лекции обсуждаются макровозможности языка. ещё
Функции тест для курса Язык программирования C++ для профессионалов 60 мин
6 Классы В этой лекции описываются возможности определения новых типов, для которых доступ к данным ограничен заданным множеством... В этой лекции описываются возможности определения новых типов, для которых доступ к данным ограничен заданным множеством функций, осуществляющих его. Объясняется, как можно использовать члены структуры данных, как ее защищать, инициализировать и, наконец, уничтожать. В примерах приведены простые классы для управления таблицей имен, работы со стеком, множеством и реализации дискриминирующего (т.е. надежного) объединения. Следующие три лекции завершают описание возможностей С++ для построения новых типов, и в них содержится больше интересных примеров. ещё
Классы тест для курса Язык программирования C++ для профессионалов 60 мин
7 Производные классы Эта лекция посвящена понятию производного класса. Производные классы - это простое, гибкое и эффективное средство определения... Эта лекция посвящена понятию производного класса. Производные классы - это простое, гибкое и эффективное средство определения класса. Новые возможности добавляются к уже существующему классу, не требуя его перепрограммирования или перетрансляции. С помощью производных классов можно организовать общий интерфейс с несколькими различными классами так, что в других частях программы можно будет единообразно работать с объектами этих классов. Вводится понятие виртуальной функции, которое позволяет использовать объекты надлежащим образом даже в тех случаях, когда их тип на стадии трансляции неизвестен. Основное назначение производных классов - упростить программисту задачу выражения общности классов. ещё
Производные классы тест для курса Язык программирования C++ для профессионалов 60 мин
8 Перегрузка операций Лекция содержит описание механизма перегрузки операций в С++. Программист может задать интерпретацию операций, когда они применяются... Лекция содержит описание механизма перегрузки операций в С++. Программист может задать интерпретацию операций, когда они применяются к объектам определенного класса. Помимо арифметических, логических и операций отношения можно переопределить вызов функций (), индексацию [], косвенное обращение ->, а также присваивание и инициализацию. Можно определить явные и скрытые преобразования между пользовательскими и основными типами. Показано, как определить класс, объект которого можно копировать и уничтожать только с помощью специальных, определенных пользователем функций. ещё
Перегрузка операций тест для курса Язык программирования C++ для профессионалов 60 мин
9 Шаблоны типа В этой лекции вводится понятие шаблона типа. С его помощью можно достаточно просто определить и реализовать... В этой лекции вводится понятие шаблона типа. С его помощью можно достаточно просто определить и реализовать без потерь в эффективности выполнения программы и, не отказываясь от статического контроля типов, такие контейнерные классы, как списки и ассоциативные массивы. Кроме того, шаблоны типа позволяют определить сразу для целого семейства типов обобщенные (генерические) функции, например, такие, как sort (сортировка). В качестве примера шаблона типов и его связи с другими конструкциями языка приводится семейство списочных классов. Чтобы показать способы получения программы из в значительной степени независимых частей, приводится несколько вариантов шаблонной функции sort(). В конце определяется простой шаблон типа для ассоциативного массива и показывается на двух небольших демонстрационных программах, как им пользоваться. ещё
Шаблоны типа тест для курса Язык программирования C++ для профессионалов 60 мин
10 Механизм обработки особых ситуаций В этой лекции описан механизм обработки особых ситуаций и некоторые, основывающиеся на нем, способы обработки ошибок.... В этой лекции описан механизм обработки особых ситуаций и некоторые, основывающиеся на нем, способы обработки ошибок. Механизм состоит в запуске особой ситуации, которую должен перехватить специальный обработчик. Описываются правила перехвата особых ситуаций и правила реакции на неперехваченные и неожиданные особые ситуации. Целые группы особых ситуаций можно определить как производные классы. Описывается способ, использующий деструкторы и обработку особых ситуаций, который обеспечивает надежное и скрытое от пользователя управление ресурсами. ещё
Механизм обработки особых ситуаций тест для курса Язык программирования C++ для профессионалов 60 мин
11 Потоки В языке С++ нет средств для ввода-вывода. Их и не нужно, поскольку такие средства можно просто... В языке С++ нет средств для ввода-вывода. Их и не нужно, поскольку такие средства можно просто и элегантно создать на самом языке. Описанная здесь библиотека потокового ввода-вывода реализует строгий типовой и вместе с тем гибкий и эффективный способ символьного ввода и вывода целых, вещественных чисел и символьных строк, а также является базой для расширения, рассчитанного на работу с пользовательскими типами данных. Пользовательский интерфейс библиотеки находится в файле . Эта лекция посвящена самой потоковой библиотеке, некоторым способам работы с ней и определенным приемам реализации библиотеки. ещё
Потоки тест для курса Язык программирования C++ для профессионалов 60 мин
12 Проектирование и развитие В этой главе обсуждаются подходы к разработке программного обеспечения. Обсуждение затрагивает как технические, так и социологические... В этой главе обсуждаются подходы к разработке программного обеспечения. Обсуждение затрагивает как технические, так и социологические аспекты процесса развития программного обеспечения. Программа рассматривается как модель реальности, в которой каждый класс представляет определенное понятие. Ключевая задача проектирования состоит в определении доступной и защищенной частей интерфейса класса, исходя из которых определяются различные части программы. Определение этих интерфейсов есть итеративный процесс, обычно требующий экспериментирования. Упор делается на важной роли проектирования и организационных факторов в процессе развития программного обеспечения. ещё
Проектирование и развитие тест для курса Язык программирования C++ для профессионалов 60 мин
13 Проектирование и С++ Эта лекция посвящена связи между проектированием и языком программирования С++. В ней исследуется применение классов при... Эта лекция посвящена связи между проектированием и языком программирования С++. В ней исследуется применение классов при проектировании и указываются определенные виды зависимостей, которые следует выделять как внутри класса, так и между классами. Изучается роль статического контроля типов. Исследуется применение наследования и связь наследования и принадлежности. Обсуждается понятие компонента и даются некоторые образцы для интерфейсов. ещё
Проектирование и С++ тест для курса Язык программирования C++ для профессионалов 60 мин
14 Проектирование библиотек Эта лекция содержит описание различных приемов, оказавшихся полезными при создании библиотек для языка С++. В частности,... Эта лекция содержит описание различных приемов, оказавшихся полезными при создании библиотек для языка С++. В частности, в ней рассматриваются конкретные типы, абстрактные типы, узловые классы, управляющие классы и интерфейсные классы. Помимо этого обсуждаются понятия обширного интерфейса и структуры области приложения, использование динамической информации о типах и методы управления памятью. Внимание акцентируется на том, какими свойствами должны обладать библиотечные классы, а не на специфике языковых средств, которые используются для реализации таких классов и не на определенных полезных функциях, которые должна предоставлять библиотека. ещё
Проектирование библиотек тест для курса Язык программирования C++ для профессионалов 60 мин
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

Выдается при наличии среднего специального или высшего образования (необходимые документы).

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.