С++ – появление языка
Разработка языка началась в 1979 году. Целью создания C++ было дополнение C возможностями, удобными для масштабной разработки ПО, с сохранением гибкости, скорости и портабельности C. Вместе с тем создатели C++ стремились сохранить совместимость с C: синтаксис первого основан на синтаксисе последнего, и большинство программ на C будут работать и как C++. Изначально новый язык назывался “C с классами”, но затем имя было изменено на C++ — это должно было подчеркнуть как его происходжение от C, так и его превосходство над последним.
Си++ (англ. C++) — компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования.
Первый выпуск C++ для коммерческого использования состоялся в 1985 году, вместе с публикацией книги “The C++ Programming Language”, которая на долгое время стала его неофициальным стандартом. В 1989 году вышла вторая версия языка в сопровождении книги “The Annotated C++ Reference Manual”.
В 1990-х годах язык стал одним из наиболее широко используемых языков программирования общего назначения. Первым официальным стандартом языка стал ISO/IEC 14882:1998, более известный как C++98. В 2003 году была принята его дополненная версия, C++03, а в 2005 году был опубликован “Library Technical Report 1” (сокращенно TR1) — документ, описывающий расширения стандартной библиотеки. TR1 не является стандартом, но большинство актуальных компиляторов C++ поддерживает его. Наконец, в 2011 году был принят текущий стандарт, C++11.
Нововведениями C++ в сравнении с C являются:
- поддержка объектно-ориентированного программирования через классы. C++ предоставляет все четыре возможности ООП — абстракцию, инкапсуляцию, наследование (в том числе и множественное) и полиморфизм.
- поддержка обобщённого программирования через шаблоны функций и классов;
- стандартная библиотека C++ состоит из стандартной библиотеки C (с некоторыми модификациями) и библиотеки шаблонов (Standard Template Library, STL), которая предоставляет обширный набор обобщенных контейнеров и алгоритмов;
- дополнительные типы данных;
- обработка исключений;
- виртуальные функции;
- пространства имён;
- встраиваемые (inline) функции;
- перегрузка (overloading) операторов;
- перегрузка имён функций;
- ссылки и операторы управления свободно распределяемой памятью.
Среды разработки для С++.
Microsoft Visual Studio
Visual Studio — интегрированная среда разработки C++, которая позволяет разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms. Она также подходит для создания веб-сайтов, веб-приложений и веб-служб для всех поддерживаемых платформ: Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone, .NET Compact Framework и Silverlight.
Достоинства:
- Есть бесплатная версия Visual Studio Community.
- Встроенный интерфейс командной строки.
- API для подключения дополнительных инструментов отладки.
- Полный набор инструментов разработчика для создания и клонирования Git-репозиториев, управления ветвями и разрешения конфликтов слияния прямо в интегрированной среде разработки C++.
- Большой набор дополнений для расширения базовой функциональности.
Недостатки:
- Высокая стоимость платных версий Professional и Enterprise (от 45 долларов в месяц).
- Высокие требования к «железу».
- Нет версии для Linux.
Скачать Visual Studio с официального сайта
Qt Creator
Qt Creator — интегрированная среда разработки C++, доступная на Windows, Linux и macOS. Предоставляет бесплатную версию, которой можно пользоваться в течение 1 месяца. Предлагает полный набор инструментов разработчика, предназначенных для создания и развёртывания приложений.
Достоинства:
- Поддерживает отладку, профилирование, автозавершение кода и рефакторинг.
- Возможность компиляции проектов для разных ОС.
Недостатки:
- Большой вес приложений.
- Не всегда работает автозавершение кода.
- Дорогая платная версия.
- Нужна регистрация для скачивания бесплатной версии.
Скачать QT Creator с официального сайта
CLion
CLion — кроссплатформенная среда программирования на C++ от компании JetBrains. Включает в себя современные стандарты C ++, libc ++ и Boost. Поддерживает также другие языки программирования — Kotlin, Python, Rust и т.д. — «из коробки» или с помощью плагинов.
Достоинства:
- Удобные механизмы отладки приложений.
- Автозавершение кода.
- Поддержка VIM.
Недостатки:
- Нет бесплатной версии — только демо на 30 дней.
- Нет встроенного компилятора.
- Возникают проблемы с установкой компилятора.
Скачать Clion с официального сайта
Xcode
Тип: IDE
Стоимость: Бесплатно
Поддерживаемые платформы: macOS
Ключевая IDE компании Apple, разработанная эксклюзивно для macOS. Хоть и основное направление Xcode – работа с языками Objective-C и Swift, в программу встроен быстрый и удобный компилятор С++. Для работы с ним нужно лишь указать соотвествующий формат при создании нового проекта.
В Xcode удобный интерфейс, позволяющий легко организовать все открытые файлы проекта: скрипты, документацию, preview-кода и другие элементы, необходимые по ходу разработки приложения.
Здесь есть все необходимые инструменты для разработки: полноценные дебаггер (система поиска ошибок), механизмы управления файлами на манер git, встроенные утилиты для тестирования кода и т.п.
Запускать компилятор можно через командную строку, не используя графический интерфейс.
Dev-C++
Тип: IDE
Стоимость: Бесплатно
Поддерживаемые платформы: Windows
Dev-C++ – это полноформатная IDE для написания и компиляции кода на языках С и С++. Утилита является одним из главных программных продуктов с 1998 года. Ее используют миллионы разработчиков, студентов и исследователей.
Из преимуществ Dev-C++ пользователи программы выделяют следующие аспекты:
- Легковесность и высокая скорость работы (интерфейса и компилятора).
- Портативность. Возможность запускать Dev-C++ без установки.
- Поддерживает сторонние компиляторы Mingw, Cygwin и другие.
- Браузер классов, интегрированный дебаггер, автозавершение кода.
- Удобный интерфейс управления проектами и настраиваемый текстовый редактор.
C++ Builder
C++ Builder (читается как си-плюс-плюс билдэр или си билдэр) – это полноценный расширяемый программный продукт с удобной разработкой приложений RAD. В C++ Builder внедрена оптимизированная среда программирования IDE, которая позволяет разрабатывать на языке C++ различного направления программное обеспечение.
C++ Builder – обширный комплекс с такими библиотеками как STL, MFC, VCL, CLX и др. Кроме этого имеется компилятор, редактор, отладчик кода и множество других полезных для разработки компонентов. Процесс разработки приложений схож с Delphi, поэтому большинство компонентов, которые разрабатывались под Delphi, можно интегрировать в C++ Builder без каких-либо модификации и бубнов. В C++ Builder большая часть компонентов перешла из Delphi. Благодаря этому, написанный код на языке Delphi, с минимальными знаниями можно преобразовать в C++ Builder.
В C++ Builder есть огромное количество инструментов, которые позволяют упростить разработку визуальных приложений с помощью drag-and-drop компонентов и встроенного редактора интерфейса WYSIWYG.
Изначально разработкой программного продукта C++ Builder занималась компания Borland Software, а теперь по текущее время компания Embarcadero Technologies, её подразделение CodeGear.
Embarcadero C++ Builder – это продвинутый программный кросс-платформенный инструмент для разработки от мелких до довольно крупных приложений с красивым и удобным интерфейсов UI для таких систем как Windows, Android и iOS. В последние версии Embarcadero C++ Builder входит фреймворк VCL, который позволяет создавать высокопроизводительные native-приложения для Windows и FireMonkey (FMX).
Проектирование
- Быстрая разработка приложений с VCL для Windows, обеспечивая непревзойденную native-производительность.
- Технология Drag-and-drop позволяет переносить любые компоненты на форму приложения.
- Возможность расширения компонентов от разных сертифицированных партнёров.
- Технология FMX для кросс-платформенных проектов.
- Удобный конструктор LiveBindings для быстрого привязывания источников данных к элементам пользовательского интерфейса с помощью визуальных средств.
- Live On-Device Preview позволяет проверять и оценивать дизайн разработанного приложения в режиме реального времени.
- Разработка адаптивного дизайна, поддерживающий высокое разрешение DPI, для компьютеров, планшетов и смартфонов.
Кодирование
- Быстрые и оптимизированные компиляторы C++ для Windows, Android и iOS.
- Code Insight упрощает процесс разработки приложений.
- Обширная поддержка СУБД: InterBase, Oracle, PostgreSQL, DB2, SQLite, MySQL, SQL Server, SQL Anywhere, Firebird, Access, Advantage DB, Informix, MongoDB.
- Удобные встроенные подсказки во время написания кода.
- Интеграция с популярными библиотеками Boost, Eigen и ZeroMQ.
- Возможность расширения набора инструментов и библиотек сообщества разработчиков.
- Поддержка контроля версий – Git, Subversion и Mercurial.
Отладка
- Интегрированный набор инструментов позволяет значительно сократить время разработки приложений и объединяет в единую среду средства проектирования, компилятор и отладчик.
- Условные точки прерывания позволяют приостанавливать исполнение приложений в указанных местах или при наступлении указанного условия.
- Удобный анализ стек вызовов для отслеживания и обнаруживания последовательности выполнения кода.
- Быстрая проверка значения переменных во время отладки кода.
Книги для изучения C++
Герберт Шилдт. С++ для начинающих. Шаг за шагом
Самоучитель, который шаг за шагом расскажет об основных понятиях языка C++: переменные, инструкции управления, функции, типы и массивы данных, классы и объекты. Рассказано о перегрузках, управлении исключениями, наследовании, виртуальных функциях, полиморфизме, вводе/выводе.
Достоинства:
- Необходимый объём для начинающих.
- Доступный язык повествования.
- Есть вопросы для самопроверки.
- Хорошее качество печати.
Недостатки:
- Блеклый шрифт листингов программ.
- На обратной стороне книги говорится о многопоточном программировании и работе в сети, но читатели такой информации в самоучителе не нашли.
- Мягкая обложка.
Стивен Прата. Язык программирования C++. Лекции и упражнения
Эта классическая работа по вычислительной технике обучает принципам программирования, среди которых структурированный код и нисходящее проектирование, а также использованию классов, наследования, шаблонов, исключений, лямбда-выражений.
Достоинства:
- Подробное изложение.
- Множество примеров кода.
- Задания после каждой главы.
- Вопросы для самоконтроля.
- Хорошее качество переплета.
Недостатки:
- Не затронуты стандарты C14, C17.
- Встречаются опечатки.
Роберт Лафоре. Объектно-ориентированное программирование в С++
Принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным успехом в учебных заведениях благодаря тому, что содержит более 100 упражнений, позволяющих проверить знания по всем темам.
Достоинства:
- Хорошая база для освоения языка.
- Легко читается.
- В каждой главе разбираются примеры.
- Есть контрольные вопросы и упражнения.
- Твердый переплет, белые страницы.
Недостатки:
- Встречаются опечатки и ошибки.
- Рассматривается старый стандарт языка.
Страуструп. Программирование. Принципы и практика с использованием C++
Хотя автор книги одновременно является и автором языка, С++ играет сугубо иллюстративную роль. Автор задумал книгу как вводный курс по программированию. Описан широкий круг понятий и приемов программирования, необходимых для того, чтобы стать профессиональным программистом.
Если вы решили стать программистом, и уже знакомы с азами C++ – эта книга для вас, в первую очередь потому, что программирование – это не только, и не столько знание инструмента (языка программирования), сколько понимание самого процесса.
Достоинства:
- Книга учит программированию, язык – инструмент.
- Качественный перевод и оформление книги.
Недостатки:
- Большой объем, было бы удобнее, если бы выходила в двух томах.