С++

С++ – появление языка

Разработка языка началась в 1979 году. Целью создания C++ было дополнение 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

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 для C++

Достоинства:

  • Поддерживает отладку, профилирование, автозавершение кода и рефакторинг.
  • Возможность компиляции проектов для разных ОС.

Недостатки:

  • Большой вес приложений.
  • Не всегда работает автозавершение кода.
  • Дорогая платная версия.
  • Нужна регистрация для скачивания бесплатной версии.

Скачать QT Creator с официального сайта

CLion

CLion — кроссплатформенная среда программирования на C++ от компании JetBrains. Включает в себя современные стандарты C ++, libc ++ и Boost. Поддерживает также другие языки программирования — Kotlin, Python, Rust и т.д. — «из коробки» или с помощью плагинов.

CLion для C++

Достоинства:

  • Удобные механизмы отладки приложений.
  • Автозавершение кода.
  • Поддержка VIM.

Недостатки:

  • Нет бесплатной версии — только демо на 30 дней.
  • Нет встроенного компилятора.
  • Возникают проблемы с установкой компилятора.

Скачать Clion с официального сайта

Xcode

Тип: IDE

Стоимость: Бесплатно

Поддерживаемые платформы: macOS

Ключевая IDE компании Apple, разработанная эксклюзивно для macOS. Хоть и основное направление Xcode – работа с языками Objective-C и Swift, в программу встроен быстрый и удобный компилятор С++. Для работы с ним нужно лишь указать соотвествующий формат при создании нового проекта. 

Интерфейс приложения Xcode

В Xcode удобный интерфейс, позволяющий легко организовать все открытые файлы проекта: скрипты, документацию, preview-кода и другие элементы, необходимые по ходу разработки приложения. 

Здесь есть все необходимые инструменты для разработки: полноценные дебаггер (система поиска ошибок), механизмы управления файлами на манер git, встроенные утилиты для тестирования кода и т.п. 

Запускать компилятор можно через командную строку, не используя графический интерфейс.

Dev-C++

Тип: IDE

Стоимость: Бесплатно

Поддерживаемые платформы: Windows

Dev-C++ – это полноформатная IDE для написания и компиляции кода на языках С и С++. Утилита является одним из главных программных продуктов с 1998 года. Ее используют миллионы разработчиков, студентов и исследователей. 

Интерфейс приложения Dev-C

Из преимуществ Dev-C++ пользователи программы выделяют следующие аспекты:

  • Легковесность и высокая скорость работы (интерфейса и компилятора). 
  • Портативность. Возможность запускать Dev-C++ без установки.
  • Поддерживает сторонние компиляторы Mingw, Cygwin и другие.
  • Браузер классов, интегрированный дебаггер, автозавершение кода. 
  • Удобный интерфейс управления проектами и настраиваемый текстовый редактор.

C++ Builder

С++ 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++

Герберт Шилдт. С++ для начинающих. Шаг за шагом

<a href=
С++ для начинающих. Шаг за шагом

Самоучитель, который шаг за шагом расскажет об основных понятиях языка C++: переменные, инструкции управления, функции, типы и массивы данных, классы и объекты. Рассказано о перегрузках, управлении исключениями, наследовании, виртуальных функциях, полиморфизме, вводе/выводе.

Достоинства:

  • Необходимый объём для начинающих.
  • Доступный язык повествования.
  • Есть вопросы для самопроверки.
  • Хорошее качество печати.

Недостатки:

  • Блеклый шрифт листингов программ.
  • На обратной стороне книги говорится о многопоточном программировании и работе в сети, но читатели такой информации в самоучителе не нашли.
  • Мягкая обложка.

Стивен Прата. Язык программирования C++. Лекции и упражнения

<a href=
Стивен Прата. Язык программирования C++. Лекции и упражнения

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

Достоинства:

  • Подробное изложение.
  • Множество примеров кода.
  • Задания после каждой главы.
  • Вопросы для самоконтроля.
  • Хорошее качество переплета.

Недостатки:

  • Не затронуты стандарты C14, C17.
  • Встречаются опечатки.

Роберт Лафоре. Объектно-ориентированное программирование в С++

<a href=
Роберт Лафоре. Объектно-ориентированное программирование в С++

Принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным успехом в учебных заведениях благодаря тому, что содержит более 100 упражнений, позволяющих проверить знания по всем темам.

Достоинства:

  • Хорошая база для освоения языка.
  • Легко читается.
  • В каждой главе разбираются примеры.
  • Есть контрольные вопросы и упражнения.
  • Твердый переплет, белые страницы.

Недостатки:

  • Встречаются опечатки и ошибки.
  • Рассматривается старый стандарт языка.

Страуструп. Программирование. Принципы и практика с использованием C++

<a href=
Страуструп. Программирование. Принципы и практика с использованием C++

Хотя автор книги одновременно является и автором языка, С++ играет сугубо иллюстративную роль. Автор задумал книгу как вводный курс по программированию. Описан широкий круг понятий и приемов программирования, необходимых для того, чтобы стать профессиональным программистом.

Если вы решили стать программистом, и уже знакомы с азами C++ – эта книга для вас, в первую очередь потому, что программирование – это не только, и не столько знание инструмента (языка программирования), сколько понимание самого процесса.

Достоинства:

  • Книга учит программированию, язык – инструмент.
  • Качественный перевод и оформление книги.

Недостатки:

  • Большой объем, было бы удобнее, если бы выходила в двух томах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

1063