Вам мало языка 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.

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

С чего начать

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

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

Обложка:

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

Корректор:

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

Вёрстка:

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

Через год — лучше работа, выше зарплата
В «Яндекс Практикуме» становятся разработчиками с нуля. Выберите язык — веб, Python, Java, C++ — и учитесь. Джуны зарабатывают от 80 000 ₽, мидлы — от 150 000 ₽. Дальше — программы трудоустройства и компенсация, если пойдёте в Яндекс.
Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата
Вам может быть интересно
Java и JavaScript: в чём разница?
Java и JavaScript: в чём разница?

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

easy
Подборка из 8 лучших бесплатных хостингов
Подборка из 8 лучших бесплатных хостингов

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

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

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

easy
116 тысяч рублей в месяц — средняя зарплата для фронтенда. Как им стать
116 тысяч рублей в месяц — средняя зарплата для фронтенда. Как им стать

Простая инструкция для начинающих.

easy
Как на самом деле производят процессоры
Как на самом деле производят процессоры

Чтобы создать сверхмощный процессор, достаточно простого…

Radix Sort — самая быстрая сортировка для чисел и строк
Radix Sort — самая быстрая сортировка для чисел и строк

Объясняем, в чём секрет поразрядной сортировки

medium
Курсы, самообразование или второе высшее: что выбрать в 2026 году
Курсы, самообразование или второе высшее: что выбрать в 2026 году

Считаем деньги, сроки и сравниваем результат

easy
Чем будем замещать
Чем будем замещать

Бесплатные аналоги необходимого софта

easy
Как не запутаться в Event Loop: простое объяснение сложного механизма
Как не запутаться в Event Loop: простое объяснение сложного механизма

Как движок решает, что выполнить сейчас, а что потом

medium
medium