Уроки С++

Основы и тонкости языка программирования C++. Практические задания и тесты. Хотите научиться программировать? Тогда вы по адресу. Неважно, имеете ли Вы опыт в программировании или нет, эти уроки помогут Вам начать создавать, компилировать и отлаживать программы на языке C++ в разных средах разработки: Visual Studio, Code::Blocks, Xcode, Eclipse. Множество примеров и подробных разъяснений. Отлично подойдут как для новичков (чайников), так и для более продвинутых. Объясняется всё с нуля и до самых деталей. Абсолютно бесплатно!

Важное примечание: Если вы застряли на каком-то уроке или у вас не получается выполнить тестовое задание или пройти итоговый тест до конца — не переживайте и не думайте, что это не для вас и не у ваших силах. Отдохните немного, пересмотрите материал, если никак не получается — пропустите урок или задание (посмотрите его выполнение). Эти уроки дадут вам хорошую базу, фундамент в понимании программирования не только в С++, но и в других языках. Главное — не отчаиваться и не забрасывать, если что-то не получается или вы что-то не можете понять. Продолжайте двигаться.

От Вас нужно только желание, желание учиться.

Глава №0. Введение. Начало работы

Урок №1. Введение в программирование

Урок №2. Введение в языки программирования C и С++

Урок №3. Введение в разработку программных продуктов

Урок №4. Установка Интегрированной Среды Разработки (IDE) для С++

Урок №5. Компиляция вашей первой программы

Урок №6. Режимы конфигурации Debug и Release

Урок №7. Самые распространенные проблемы в C++. Решения

Глава №1. Основы C++

Урок №8. Структура программ в С++

Урок №9. Комментарии в С++

Урок №10. Переменные, инициализация и присваивание в С++

Урок №11. Сout, cin и endl

Урок №12. Функции и return

Урок №13. Параметры и аргументы функций

Урок №14. Почему функции полезны и как их эффективно использовать

Урок №15. Локальная область видимости С++

Урок №16. Ключевые слова и идентификаторы в С++

Урок №17. Операторы в С++

Урок №18. Whitespace и базовое форматирование

Урок №19. Предварительное объявление и прототип функции

Урок №20. Многофайловые программы

Урок №21. Заголовочные файлы

Урок №22. Препроцессор. Директивы

Урок №23. Header guards

Урок №24. Конфликт имен и std namespace

Урок №25. Разработка ваших первых программ

Урок №26. Отладка программ. Stepping и breakpoints

Урок №27. Отладка. Стек вызовов и отслеживание переменных

Глава №1. Итоговый тест

Глава №2. Переменные и основные типы данных в C++

Урок №28. Детальнее об инициализации, присваивании и определении

Урок №29. Void

Урок №30. Размер переменных. Оператор sizeof

Урок №31. Целочисленный тип данных. Integer

Урок №32. Фиксированный размер integers. Спор насчет unsigned

Урок №33. Тип данных с плавающей точкой. Floating point

Урок №34. Логический тип данных. Boolean

Урок №35. Символьный тип данных. Char

Урок №36. Литералы. Магические числа

Урок №37. Символьные константы. Const, constexpr

Глава №2. Итоговый тест

Глава №3. Операторы в C++

Урок №38. Приоритет операций. Ассоциативность

Урок №39. Арифметические операторы

Урок №40. Инкремент. Декремент. Побочные эффекты

Урок №41. Sizeof, запятая и условный тернарный оператор

Урок №42. Операторы сравнения

Урок №43. Логические операторы (И, ИЛИ, НЕ)

Урок №44. Перевод чисел из двоичной системы в десятичную и наоборот

Урок №45. Побитовые операторы

Урок №46. Битовые флаги и битовые маски

Глава №3. Итоговый тест

Глава №4. Область видимости и другие типы переменных в C++

Урок №47. Блоки стейтментов. Составные операторы

Урок №48. Локальные переменные, область видимости и время жизни

Урок №49. Глобальные переменные

Урок №50. Почему глобальные переменные – зло?

Урок №51. Статические переменные

Урок №52. Связи, область видимости и продолжительность

Урок №53. Пространства имен

Урок №54. Using statements

Урок №55. Неявное преобразование типов данных

Урок №56. Явное преобразование типов данных (операторы casts)

Урок №57. Введение в std::string

Урок №58. Перечисления (типы enum)

Урок №59. Классы enum

Урок №60. Псевдонимы типов. Typedef и type alias

Урок №61. Структуры

Урок №62. Ключевое слово auto. Вывод типов

Глава №4. Итоговый тест

Глава №5. Порядок выполнения кода в программе. Циклы, ветвления в C++

Урок №63. Порядок выполнения программ. Операторы управления

Урок №64. Операторы условного ветвления if и else

Урок №65. Оператор switch

Урок №66. Оператор goto

Урок №67. Цикл while

Урок №68. Цикл do while

Урок №69. Цикл for

Урок №70. Операторы break и continue

Урок №71. Генерация случайных чисел. Функции srand() и rand()

Урок №72. Обработка некорректного ввода через std::cin

Урок №73. Введение в тестирование кода

Глава №5. Итоговый тест

Глава №6. Массивы, Строки, Указатели и Ссылки в C++

Урок №74. Массивы. Часть 1

Урок №75. Массивы. Часть 2

Урок №76. Массивы и циклы

Урок №77. Сортировка массивов методом выбора

Урок №78. Многомерные массивы

Урок №79. Строки C-style

Урок №80. Указатели. Введение

Урок №81. Нулевые указатели

Урок №82. Указатели и массивы

Урок №83. Адресная арифметика и индексация массива

Урок №84. Символьные константы строк C-style

Урок №85. Динамическое выделение памяти. Операторы new и delete

Урок №86. Динамические массивы

Урок №87. Указатели и const

Урок №88. Ссылки

Урок №89. Ссылки и const

Урок №90. Оператор доступа к членам через указатель

Урок №91. Цикл foreach

Урок №92. Указатели типа void

Урок №93. Указатели на указатели

Урок №94. Введение в std::array

Урок №95. Введение в std::vector. Векторы

Глава №6. Итоговый тест

Глава №7. Функции в C++

Урок №96. Параметры и аргументы функций

Урок №97. Передача аргументов по значению

Урок №98. Передача аргументов по ссылке

Урок №99. Передача аргументов по адресу

Урок №100. Возврат значений по ссылке, по адресу и по значению

Урок №101. Встроенные функции

Урок №102. Перегрузка функций

Урок №103. Параметры по умолчанию

Урок №104. Указатели на функции

Урок №105. Стек и Куча

Урок №106. Емкость вектора. std::vector в качестве стека

Урок №107. Рекурсия. Числа Фибоначчи и Факториал

Урок №108. Обработка ошибок, cerr и exit

Урок №109. Assert и static_assert

Урок №110. Аргументы командной строки

Урок №111. Эллипсис. Почему его не следует использовать

Глава №7. Итоговый тест

Глава №8. Основы Объектно-Ориентированного Программирования (ООП) в C++

Урок №112. Введение в ООП

Урок №113. Классы. Объекты и методы классов

Урок №114. Спецификаторы доступа public и private

Урок №115. Инкапсуляция. Геттеры и Сеттеры

Урок №116. Конструкторы

Урок №117. Список инициализации членов класса

Урок №118. Инициализация нестатических членов класса

Урок №119. Делегирующие конструкторы

Урок №120. Деструкторы

Урок №121. Скрытый указатель this

Урок №122. Классы и заголовочные файлы

Урок №123. Классы и const

Урок №124. Статические переменные-члены класса

Урок №125. Статические методы класса

Урок №126. Дружественные функции и классы

Урок №127. Анонимные объекты

Урок №128. Вложенные типы в классах

Урок №129. Тайминг кода. Время выполнения программы

Глава №8. Итоговый тест

Глава №9. Перегрузка операторов в C++

Урок №130. Введение в перегрузку операторов

Урок №131. Перегрузка операторов через дружественные функции

Урок №132. Перегрузка операторов через обычные функции

Урок №133. Перегрузка операторов ввода и вывода

Урок №134. Перегрузка операторов через методы класса

Урок №135. Перегрузка унарных операторов плюс, минус и логического НЕ

Урок №136. Перегрузка операторов сравнения

Урок №137. Перегрузка операторов инкремента и декремента

Урок №138. Перегрузка оператора индексации

Урок №139. Перегрузка оператора (). Круглые скобки

Урок №140. Перегрузка операций преобразования типов данных

Урок №141. Конструктор копирования

Урок №142. Копирующая инициализация

Урок №143. Конструкторы преобразования. Ключевые слова explicit и delete

Урок №144. Перегрузка оператора присваивания

Урок №145. Поверхностное и глубокое копирование

Глава №9. Итоговый тест

Глава №10. Введение в отношения между объектами в C++

Урок №146. Отношения между объектами

Урок №147. Композиция объектов

Урок №148. Агрегация

Урок №149. Ассоциация

Урок №150. Зависимость

Урок №151. Контейнерные классы

Урок №152. Список инициализации std::initializer_list

Глава №10. Итоговый тест

Глава №11. Наследование в C++

Урок №153. Наследование. Введение

Урок №154. Базовое наследование в C++

Урок №155. Порядок построения дочерних классов

Урок №156. Конструкторы и инициализация дочерних классов

Урок №157. Наследование и спецификаторы доступа. Protected

Урок №158. Добавление нового функционала в дочерний класс

Урок №159. Вызов и переопределение методов родительского класса

Урок №160. Сокрытие методов родительского класса

Урок №161. Множественное наследование

Глава №11. Итоговый тест

Глава №12. Виртуальные функции в C++

Урок №162. Указатели/Ссылки и Наследование

Урок №163. Виртуальные функции и Полиморфизм

Урок №164. Модификаторы override и final. Ковариантный тип возврата

Урок №165. Виртуальные деструкторы и присваивание

Урок №166. Раннее и Позднее Связывания

Урок №167. Виртуальные таблицы

Урок №168. Чистые виртуальные функции. Интерфейсы и Абстрактные классы

Урок №169. Виртуальный базовый класс

Урок №170. Обрезка объектов

Урок №171. Динамическое приведение типов. Оператор dynamic_cast

Урок №172. Вывод объектов классов через оператор вывода

Глава №12. Итоговый тест

Глава №13. Шаблоны в C++

Урок №173. Шаблоны функций

Урок №174. Экземпляры шаблонов функций

Урок №175. Шаблоны классов

Урок №176. Параметр non-type шаблона

Урок №177. Явная специализация шаблона функции

Урок №178. Явная специализация шаблона класса

 

Перевод с LearnCpp.com.