C++


C++ — компилируемый, статически типизированный язык программирования общего назначения. Поддерживает такие парадигмы программирования, как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование. Язык имеет богатую стандартную библиотеку, которая включает в себя распространённые контейнеры и алгоритмы, ввод-вывод, регулярные выражения, поддержку многопоточности и другие возможности.

История создания:

Язык С++ был создан Бьерном Страуструпом в 1979 году в компании Bell Laboratories и сначала имел название "С с классами". Страуструп утверждает, что некоторые объектно-ориентированные средства были инспирированы другим объектно-ориентированным языком - Simula67.
Из всех объектно-ориентированных языков С++ является наиболее употребительным.

В 1984 он написал первую версию программы cfont, которая транслировала код его языка в код простого Си. После этого популярность языка среди других коллег из Bell Labs резко выросла и Страуструп уже не смог поддерживать развитие языка в одиночку, отвечая на просьбы программистов добавить ту или иную функцию. В 1985 вышла первая полноценная версия, которая перестала быть просто дополнением Си. Она была названа С++ (в честь оператора инкремента, а ещё потому, что названия С+ и D нельзя было использовать ).

Особенности:

Несмотря на ряд известных недостатков языка C, Страуструп пошёл на его использование в качестве основы, так как «в C есть свои проблемы, но их имел бы и разработанный с нуля язык, а проблемы C нам известны». Кроме того, это позволило быстро получить прототип компилятора, который лишь выполнял трансляцию добавленных синтаксических элементов в оригинальный язык C.

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

  • сохранение действующего кода, написанного изначально на C и прямо перенесённого в C++;
  • исключение необходимости переучивания программистов, ранее изучавших C (им требуется только изучить новые средства C++);
  • исключение путаницы между языками при их совместном использовании («если два языка используются совместно, их различия должны быть или минимальными, или настолько большими, чтобы языки было невозможно перепутать»).
Новые возможности C++ включают объявления в виде выражений, преобразования типов в виде функций, операторы new и delete, тип bool, ссылки, расширенное понятие константности, подставляемые функции, аргументы по умолчанию, переопределения, пространства имён, классы (включая и все связанные с классами возможности, такие как наследование, функции-члены, виртуальные функции, абстрактные классы и конструкторы), переопределения операторов, шаблоны, обработку исключений, динамическую идентификацию и многое другое. Язык C++ также во многих случаях строже относится к проверке типов, чем C.

Интересен и синтаксис языка: ниже представлен фрагмент кода на C++:

class Array {
public:
Array() = default; // компилятор создаст конструктор по умолчанию сам
Array(size_t _len) :
len(_len) {
val = new double[_len];
}
Array(const Array & a) = delete;  // конструктор копирования явно удалён
Array(Array && a); // конструктор перемещения
~Array() {
delete[] val;
}
Array& operator=(const Array& rhs); // оператор присваивания копированием
Array& operator=(Array&& rhs); // оператор присваивания перемещением
double& operator[](size_t i) {
return val[i];
}
const double& operator[](size_t i) const {
return val[i];
}

protected:
std::size_t len {0}; // инициализация поля
double* val {nullptr};
};
Плюсы:
  • Масштабируемость. На языке C++ разрабатывают программы для самых различных платформ и систем.
  • Возможность работы на низком уровне с памятью, адресами, портами. Что, при неосторожном использовании, может легко превратиться в недостаток.
  • Возможность создания обобщенных алгоритмов для разных типов данных, их специализация, и вычисления на этапе компиляции, используя шаблоны.

Минусы:

  • Язык программирования C++ является довольно сложным для понимания
  • C++ довольно объёмный и эклектичный
  • У этого языка не имеется конкретной целевой ниши применения

Вывод:

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

 

Комментарии

Популярные сообщения из этого блога

JavaScript

Заключение

Python