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

Вам мало языка 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
Веб-проект: делаем реалистичную аквакнопку, как в старых Mac OS со скевомор­физмом
Веб-проект: делаем реалистичную аквакнопку, как в старых Mac OS со скевомор­физмом

Верните мой 2001-й

easy
Выбираем компьютер для программиста в 2024 году
Выбираем компьютер для программиста в 2024 году

Варианты под разные бюджеты и задачи

easy
Кто такая Unity и почему она всем нравится
Кто такая Unity и почему она всем нравится

Бесплатный движок с классной графикой, реалистичной физикой и понятным интерфейсом.

easy
Все опять заговорили про VPN. Что это такое, объясни мне!
Все опять заговорили про VPN. Что это такое, объясни мне!

Мы не можем вам сказать. Но можем показать.

medium
Парадигмы программирования: что это такое и на что они влияют
Парадигмы программирования: что это такое и на что они влияют

Мы все ими пользуемся, но не знаем об этом

hard
Добавляем перетаскивание в свой Трелло-планировщик
Добавляем перетаскивание в свой Трелло-планировщик

Делаем всё по-настоящему

easy
medium