Введение 25
Часть I. Основы C++ 29
Занятие 1. Первые шаги 31
Занятие 2. Структура программы на C++ 41
Занятие 3. Использование переменных и констант 55
Занятие 4. Массивы и строки 85
Занятие 5. Выражения, инструкции и операторы 105
Занятие 6. Управление потоком выполнения программы 129
Занятие 7. Организация кода с помощью функций 165
Занятие 8. Указатели и ссылки 191
Часть II. Объектно-ориентированное программирование на C++ 227
Занятие 9. Классы и объекты 229
Занятие 10. Реализация наследования 283
Занятие 11. Полиморфизм 315
Занятие 12. Типы операторов и их перегрузка 343
Занятие 13. Операторы приведения 381
Занятие 14. Введение в макросы и шаблоны 395
Часть III. Стандартная библиотека шаблонов 425
Занятие 15. Введение в стандартную библиотеку шаблонов 427
Занятие 16. Класс строки библиотеки STL 439
Занятие 17. Классы динамических массивов библиотеки STL 457
Занятие 18. Классы list и forward_list 475
Занятие 19. Классы множеств STL 495
Занятие 20. Классы отображений библиотеки STL 513
Часть IV. Углубляемся в STL 535
Занятие 21. Понятие о функциональных объектах 537
Занятие 22. Лямбда-выражения языка C++11 553
Занятие 23. Алгоритмы библиотеки STL 567
Занятие 24. Адаптивные контейнеры: стек и очередь 599
Занятие 25. Работа с битовыми флагами при использовании библиотеки STL 615
Часть V. Сложные концепции C++ 625
Занятие 26. Понятие интеллектуальных указателей 627
Занятие 27. Применение потоков для ввода и вывода 641
Занятие 28. Обработка исключений 663
Занятие 29. Что дальше 677
Часть VI. Приложения 691
Приложение А. Двоичные и шестнадцатеричные числа 693
Приложение Б. Ключевые слова языка C++ 699
Приложение В. Приоритет операторов 701
Приложение Г. Коды ASCII 703
Приложение Д. Ответы 707

Предметный указатель 747