Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Язык программирования C++

Языки программирования C/C++

В начале 70-х годов двадцатого века в Bell Labs был разработан язык программирования «Си». Однако прогресс диктует новые нужды, поэтому в начале 80-х сотрудник той же фирмы по имени Бьёрн Страуструп решил этот язык малость усовершенствовать. Так возник C++.

Поначалу новый язык обозначался как «Си с классами». В него были добавлены такие полезности, как производные классы, классы с инкапсуляцией, проверка типов, аргументы по умолчанию, inline-функции. Создатель также написал транслятор cfront, перерабатывающий исходный код в обычный «Си». В 1983-м язык стал называться C++. (Два плюса — это обозначение инкремента переменной.)

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

Главной особенностью, в сравнении со старичком «Си», было развитие объектного программирования. Правда, таковое реализовывалось ещё в языке Симула, но он не отличался особым удобством и эффективностью. Страуструп сумел сделать всё гораздо удачнее. Причём, настолько удачнее, что C++ завоевал широкую популярность практически сразу.

На C++ стали писать прикладные программы, драйверы для устройств, игры, операционные системы, серверный софт... Да и вообще всё, что душа пожелает.

Бьёрн Страуструп самолично огласил идеологические основы C++, его философию. Язык был задуман как универсальный. Чтобы можно было использовать статические типы данных, поддерживать разные стили программирования (в том числе процедурное и объектно-ориентированное), но при этом оставить эффективность и простоту «Си».

Кроме того, идентичные конструкции в C и C++ должны обозначать одно и то же и работать одинаково. По возможности следует избегать всего, что не является универсальным и заточено лишь под одну платформу.

Ну а самая главная заповедь — использование средств языка не должно вести к неоправданному снижению производительности программ. К сожалению, такой принцип уже давно не соблюдается, но это уже, как говорится, отдельная тема.

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

Появились операторы delete, new, тип bool. Функция main() по-прежнему служит точкой входа, тут велосипед не изобретался. Как и в «Си», для main() можно не указывать в конце return 0. Но только для этой функции. Коротко говоря, хотя различий много, но много и общего.

К преимуществам можно отнести оптимальный вызов деструкторов, что теоретически должно обеспечивать освобождение ненужных более ресурсов. Есть возможность низкоуровневой работы. Ну и, конечно, наличие компиляторов для разных платформ.

Несомненно, язык C++ является продвинутым, вполне современным и широко используемым. Однако главный его недостаток — уже всем изрядно надоевшие, но от этого не менее актуальные проблемы с безопасностью.

Классический пример: разница в обозначении операций присваивания = и сравнения ==, между одинарным и двойным знаком равенства. Можно спутать, ошибиться. Но нередко такие «опечатки» делаются умышленно.

Человек, проверяющий код программы, может не заметить подобной ошибки, а в итоге из-за отсутствия одного «равно» программа превращается во вредоносную. В некоторых случаях таким образом удаётся даже получить привилегии администратора в Linux. Такие вот дела.

Многие программисты предпочитают другие языки, благо выбор нынче широк. Однако изучить C++ всё равно нужно, даже если не собираетесь использовать. Такие знания вам никоим образом не помешают.

Автор: vanilinkin, специально для xBB.uz, 01.04.2011


Предыдущие публикации:

Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2011-04-01 06:45:11

Метки материала: c, c++, язык программирования, язык программирования c, язык программирования c++


4 комментария

11.04.2014 21:17:05 #
Google Chrome Гость Ололоев
кликнул по баннеру - надеюсь помог)))
24.07.2012 15:57:00 #
Mozilla Firefox Гость
Честно говоря, статья откровенно слабая.
Во-первых, C++ рассматривается лишь как некое расширение C, а не принципиально иной подход к программированию.
 
Далее, непонятные и неверные утверждения типа
"контроль над свободной памятью" - это что такое?
 
" для main() можно не указывать в конце return 0. Но только для этой функции." - это не так. Можно нигде не указывать, правда предупреждение при компиляции выдаст.
 
Также ничего не сказано о развитом механизме шаблонов, резко отличающих C++ от его объектно-ориентированных конкурентов вроде Java или C#.
Вкупе с перегрузкой функций и методов образующих метапрограммирование, позволяющие разрабатывать приложение с чрезвычайно высоким быстродействием за счет выполнение части логики программы на этапе компиляции, а не в время выполнения.
 
24.07.2012 09:52:48 #
Mozilla Firefox dima
Тогда купите соответствующий учебник: Технология программирования на C++. Начальный курс
23.07.2012 15:35:10 #
Google Chrome Гость Андрей
кароч я нифига непонялIt is surprised

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.