Вам мало языка C? Попробуйте C++

Шустрый, мощный, весь обвешан классами.

Вам мало языка C? Попробуйте C++

С++ — это Си с классами

Когда в 1973 году вышел С, это было круто — можно было писать почти любые системные программы на языке высокого уровня без всякого ассемблера. И первое время его хватало всем.

Но потом один разработчик захотел использовать всю мощь ООП, но язык это напрямую не поддерживал. Тогда он нашёл выход — написал свою версию языка C с поддержкой объектов, классов и методов, которую изначально называли «Си с классами».

Вначале это была как бы просто надстройка над стандартным С, и даже был компилятор, который переводил этот код в обычный код на С. Но со временем язык усложнялся, всё больше отходил от концепции привычного С, и в 1983 он стал отдельным полноценным языком со своими возможностями и особенностями. Тогда же у него появилось название C++ .

В чём сила C++

С++ унаследовал от C все его сильные стороны и добавил новые:

  • полноценное ООП-программирование;
  • перегрузку операторов (в умелых руках это очень мощная штука);
  • полноценную обработку исключений (это когда вы заранее продумываете, что может пойти не так, и успеваете сами предусмотреть поведение программы при ошибках);
  • некоторую автоматизацию при работе с памятью.

Недостатки C++

Может показаться, что по сравнению с C у C++ больше недостатков, но это не так — они просто другие и возникли по другим причинам. Вот некоторые из них:

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

Что сейчас пишут на C++

На C++ пишут то же, что и на C — системные приложения, драйверы, операционные системы и софт для встраиваемых систем. Но благодаря ООП область применения C++ получилась немного шире, чем у С. Вот что написано на C++ :

  • почти все продукты Adobe (Photoshop, Illustrator, inDesign, Acrobat и так далее);
  • почти все главные продукты Microsoft (Windows, Office, IE, Visual Studio, SQL);
  • большая часть MacOS (включая интерфейс Finder);
  • интерфейс iPod;
  • приложения Autodesk для проектировщиков;
  • высоконагруженные компоненты платформы Facebook;
  • поиск Google, движок Chromium;
  • Havoc — реалистичный физический движок, который используется в играх;
  • софт для бортовых компьютеров самолётов Lockheed (Стелс, например);
  • прошивки для двигателей MAN — тягачей;
  • большая часть медицинского софта компании Siemens.

А вот часть игр, которая тоже написана на C++ (или на C++ написаны движки для этих игр):

  • Doom III engine;
  • Football Pro;
  • Kings Quest;
  • Antara;
  • SWAT;
  • StarCraft;
  • Diablo II: Lord of Destruction;
  • Warcraft III;
  • World of Warcraft.

World of Warcraft написан на C++
Движок Doom3 — тоже на C++ …
…как и Finder — ключевой элемент интерфейса MacOS

С чего начать

Если вы любите смотреть видео, то можно начать с этих уроков:

А это любителям классических книг и статей:

Обложка:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
Подборка из 8 лучших бесплатных хостингов
Подборка из 8 лучших бесплатных хостингов

Поднимайте сайт, закачивайте файлы и программируйте, что вам нужно. Это бесплатно.

medium
Java и JavaScript: в чём разница?
Java и JavaScript: в чём разница?

Нестыдные вопросы.

easy
За что админы любят SSH
За что админы любят SSH

И почему вам тоже нужно его полюбить.

easy
Кто такой мидл и как им стать
Кто такой мидл и как им стать

Если вы это читаете, у вас больше шансов, чем у остальных.

easy
Как пользователь случайно взломал систему безопасности Android
Как пользователь случайно взломал систему безопасности Android

И получил за это 70 000 долларов

medium
Что такое DNS и для чего он нужен
Что такое DNS и для чего он нужен

Справочная книга всего интернета

easy
Как начать писать программу и не пожалеть
Как начать писать программу и не пожалеть

Простое пошаговое руководство для тех, кто решил написать свой первый полезный софт

easy
Нейросети 2025 года, которыми может пользоваться каждый (почти)
Нейросети 2025 года, которыми может пользоваться каждый (почти)

Вот прямо сейчас взял и нагенерил бессмысленного чего-нибудь

easy
Как работать с исключениями в Python
Как работать с исключениями в Python

Не исключено, что вам это пригодится

hard
medium