Уроки програмування на С++
Мова програмування С++ розроблена Б’ярном Страуструпом в підрозділі Bell Laboratories компанії AT&T в 1979 році. Метою створення С++ було доповнення мови програмування С можливостями, зручними для більш глобальної розробки ПО, зі збереженням гнучкості, швидкості і портативності мови C. Разом з тим творці C++ прагнули зберегти сумісність цієї мови програмування з мовою C.
Зараз мова C++ широко використовується для розробки програмного забезпечення, будучи однією з найпопулярніших мов програмування. З її допомогою створюють операційні системи, різноманітні прикладні програми, драйвери пристроїв, ігри тощо.
Серед найбільш популярного ПО, написаного на мові C++ (або з її використанням), є популярна СУБД MySQL, інтернет-браузер Mozilla Firefox, більша частина програмного забезпечення від Microsoft: операційні системи сімейства Windows, IDE Visual Studio, Internet Explorer, Microsoft Office і, звичайно ж, Adobe Photoshop, Adobe Illustrator і Adobe Premiere Pro повністю написані на C++. Також С++ лежить в основі ігрового движка Unity.
Тут представлені безкоштовні уроки по програмуванню на мові С++. Незалежно від Вашого попереднього досвіду, ці уроки допоможуть Вам почати створювати, компілювати і відлагоджувати програми на мові С++ в різних середовищах розробки: Visual Studio, Code::Blocks, Xcode тощо. Даний курс по програмуванню відмінно підійде як для новачків (чайників), так і для більш просунутих. Пояснюється все з нуля і абсолютно безкоштовно!
Розділ №0. Вступ до програмування
Урок №1. Вступ до програмування
Урок №2. Введення в мови програмування С і С++
Урок №3. Введення в розробку програмного забезпечення
Урок №4. Встановлення IDE (Інтегрованого Середовища Розробки)
Урок №5. Компіляція вашої першої програми
Урок №6. Вирішення найбільш поширених проблем початківців в С++
Урок №7. Налаштування компілятора: Режими конфігурації “Debug” і “Release”
Урок №8: Налаштування компілятора: Розширення компілятора
Урок №9. Налаштування компілятора: Попередження та помилки
Урок №10. Налаштування компілятора: Вибір стандарту мови С++
Розділ №1. Основи С++
Урок №13. Змінні, Ініціалізація і Присвоювання
Урок №14. Об’єкти cout, cin і endl
Урок №16. Параметри і аргументи функцій
Урок №17. Чому функції корисні і як їх ефективно використовувати в програмуванні?
Урок №18. Локальна область видимості
Урок №19. Ключові слова і ідентифікатори
Урок №21. Базове форматування коду
Урок №22. Прототип функції і Попереднє оголошення
Урок №23. Багатофайлові програми
Урок №25. Директиви препроцесора
Урок №26. Header guards і директива #pragma once
Урок №27. Конфлікт імен і простір імен std
Урок №28. Розробка ваших перших програм
Урок №29. Відлагодження програм: степпінг і точки зупину
Урок №30. Відлагодження програм: стек викликів і відстеження змінних
Розділ №2. Змінні і основні типи даних в С++
Урок №31. Ініціалізація, Присвоювання і Оголошення змінних
Урок №34. Цілочисельні типи даних: short, int і long
Урок №35. Фіксований розмір цілочисельних типів даних
Урок №36. Типи даних з плаваючою крапкою: float, double і long double
Урок №37. Логічний тип даних bool
Урок №38. Символьний тип даних char
Урок №39. Літерали і магічні числа
Розділ №3. Оператори в С++
Урок №41. Пріоритет операцій і правила асоціативності
Урок №42. Арифметичні оператори
Урок №43. Інкремент, декремент і побічні ефекти
Урок №44. Умовний тернарний оператор, sizeof і Кома
Урок №45. Оператори порівняння
Урок №46. Логічні оператори: І, АБО, НЕ
Урок №47. Конвертація чисел з двійкової системи числення в десяткову і навпаки
Розділ №4. Область видимості та інші типи змінних в С++
Урок №51. Локальні змінні, область видимості та тривалість життя
Урок №53. Чому глобальні змінні – це зло?
Урок №55. Зв’язки, область видимості та тривалість життя
Урок №58. Неявна конвертація типів даних
Урок №59. Явна конвертація типів даних
Урок №60. Введення в std::string
Урок №61. Перерахування (перелічуваний тип даних)
Урок №63. Псевдоніми типів: typedef і type alias
Розділ №5. Порядок виконання коду в програмі. Цикли і розгалуження в С++
Урок №66. Оператори управління потоком виконання програм
Урок №67. Оператори умовного розгалуження if/else
Урок №73. Оператори break і continue
Урок №74. Генерація рандомних чисел
Урок №75. Обробка некоректного користувацького вводу
Розділ №6. Масиви, Рядки, Вказівники і Посилання в С++
Урок №80. Сортування масивів методом вибору
Урок №83. Клас std::string_view
Урок №87. Адресна арифметика і індексація масивів
Урок №88. Символьні константи рядків C-style
Урок №89. Динамічне виділення пам’яті
Урок №94. Оператор доступу до членів через вказівник
Урок №96. Вказівники типу void
Урок №97. Вказівники на вказівники
Урок №98. Введення в std::array
Урок №99. std::vector (вектори)
Урок №100. Введення в ітератори
Розділ №7. Функції в С++
Урок №102. Параметри і аргументи функцій
Урок №103. Передача по значенню
Урок №104. Передача по посиланню
Урок №106. Повернення значень по посиланню, по адресі і по значенню
Урок №108. Перевантаження функцій
Урок №109. Параметри за замовчуванням
Урок №110. Вказівники на функції
Урок №113. Рекурсія і Числа Фібоначчі
Урок №114. Обробка помилок, cerr і exit()
Урок №115. assert і static_assert
Розділ №8. Основи ООП в С++
Урок №121. Класи, Об’єкти і Методи
Урок №122. Специфікатори доступу public і private
Урок №123. Інкапсуляція, Геттери і Сеттери
Урок №125. Список ініціалізації членів класу
Урок №126. Ініціалізація нестатичних членів класу
Урок №127. Делегуючі конструктори
Урок №129. Прихований вказівник *this
Урок №130. Класи і заголовкові файли
Урок №132. Статичні змінні-члени класу
Урок №133. Статичні методи класу
Урок №134. Дружні функції і класи
Урок №136. Вкладені типи даних в класах
Розділ №9. Перевантаження операторів в С++
Урок №138. Перевантаження операторів
Урок №139. Перевантаження операторів через дружні функції
Урок №140. Перевантаження операторів через звичайні функції
Урок №141. Перевантаження операторів вводу і виводу
Урок №142. Перевантаження операторів через методи класу
Урок №143. Перевантаження унарних операторів +, – і логічного НЕ
Урок №144. Перевантаження операторів порівняння
Урок №145. Перевантаження операторів інкременту та декременту
Урок №146. Перевантаження оператора індексації []
Урок №147. Перевантаження оператора ()
Урок №148. Перевантаження операцій конвертації типів даних
Урок №149. Конструктор копіювання
Урок №150. Копіююча ініціалізація
Урок №151. Конструктори конвертації, ключові слова explicit і delete
Урок №152. Перевантаження оператора присвоювання
Розділ №10. Зв’язки між об’єктами в С++
Урок №154. Типи зв’язків між об’єктами
Урок №155. Композиція об’єктів
Розділ №11. Спадкування в С++
Урок №161. Введення в Спадкування
Урок №163. Порядок побудови дочірніх класів
Урок №164. Конструктори і ініціалізація дочірніх класів
Урок №165. Спадкування і специфікатор доступу protected
Урок №166. Додання нового функціоналу в дочірній клас
Урок №167. Перевизначення методів батьківського класу
Урок №168. Приховування методів батьківського класу
Розділ №12. Віртуальні функції в С++
Урок №170. Вказівники, Посилання і Спадкування
Урок №171. Віртуальні функції і Поліморфізм
Урок №172. Модифікатори override і final
Урок №173. Віртуальні деструктори і Віртуальне присвоювання
Урок №174. Раннє і Пізнє зв’язування
Урок №176. Чисті віртуальні функції, Інтерфейси та Абстрактні класи
Урок №177. Віртуальний базовий клас
Урок №179. Динамічне приведення типів. Оператор dynamic_cast
Розділ №13. Шаблони в С++
Урок №182. Екземпляри шаблонів функцій
Урок №184. Параметр non-type в шаблоні
Урок №185. Явна спеціалізація шаблону функції
Урок №186. Явна спеціалізація шаблону класу
Урок №187. Часткова спеціалізація шаблону
Розділ №14. Винятки в С++
Урок №189. Винятки. Навіщо вони потрібні?
Урок №190. Обробка винятків. Оператори throw, try і catch
Урок №191. Винятки, Функції і Розкручування стеку
Урок №192. Неспіймані винятки і обробники catch-all
Урок №193. Класи-винятки і Спадкування
Урок №194. Повторна генерація винятків
Урок №195. Функціональний try-блок
Розділ №15. Розумні вказівники і Семантика переміщення в С++
Урок №197. Розумні вказівники і Семантика переміщення
Урок №199. Конструктор переміщення і Оператор присвоювання переміщенням
Урок №200. Функція std::move()
Урок №201. Розумний вказівник std::unique_ptr
Урок №202. Розумний вказівник std::shared_ptr
Розділ №16. Стандартна бібліотека шаблонів (STL) в С++
Розділ №17. std::string в С++
Урок №208. Рядкові класи std::string і std::wstring
Урок №209. Створення, знищення і конвертація std::string
Урок №210. Довжина і ємність std::string
Урок №211. Доступ до символів std::string. Конвертація std::string в рядки C-style
Урок №212. Присвоювання і перестановка значень з std::string
Розділ №18. Ввід/Вивід в С++
Урок №215. Потоки вводу і виводу
Урок №216. Функціонал класу istream
Урок №217. Функціонал класів ostream і ios. Форматування виводу
Урок №218. Потокові класи і Рядки
Урок №219. Стани потоку та валідація користувацького вводу
Додаткові уроки
Фінал
Практичні завдання по С++
Частина №1: Практичні завдання по С++
Частина №2: Практичні завдання по С++
Частина №3: Практичні завдання по С++
Частина №4: Практичні завдання по С++
Частина №5: Практичні завдання по С++
Частина №6: Практичні завдання по С++
Частина №7: Практичні завдання по С++
Частина №8: Практичні завдання по С++
Частина №9: Практичні завдання по С++
Частина №10: Практичні завдання по С++
Частина №11: Практичні завдання по С++
Частина №12: Практичні завдання по С++
Частина №13: Практичні завдання по С++
Частина №14: Практичні завдання по С++
Частина №15: Практичні завдання по С++
Частина №16: Практичні завдання по С++
Частина №17: Практичні завдання по С++
Частина №18: Практичні завдання по С++
Частина №19: Практичні завдання по С++
Частина №20: Практичні завдання по С++
Частина №21: Практичні завдання по С++
Частина №22: Практичні завдання по С++
Переклад з Ravesli | Уроки по С++