Разрабатывая C с классами, Страуструп написал программу cfront. Это позволило работать над новым языком и использовать его на практике, применяя уже имеющуюся в UNIX инфраструктуру для разработки на C. Новый язык, неожиданно для автора, приобрёл большую популярность среди коллег и вскоре Страуструп уже не мог лично поддерживать его, отвечая на тысячи вопросов.
К 1. 98. 3 году в язык были добавлены новые возможности, такие как виртуальные функции, перегрузка функций и операторов, ссылки, константы, пользовательский контроль над управлением свободной памятью, улучшенная проверка типов и новый стиль комментариев (//). Получившийся язык уже перестал быть просто дополненной версией классического C и был переименован из C с классами в «C++». Его первый коммерческий выпуск состоялся в октябре 1. До начала официальной стандартизации язык развивался в основном силами Страуструпа в ответ на запросы программистского сообщества. Функцию стандартных описаний языка выполняли написанные Страуструпом печатные работы по C++ (описание языка, справочное руководство и так далее).
Лишь в 1. 99. 8 году был ратифицирован международный стандарт языка C++: ISO/IEC 1. Standard for the C++ Programming Language»; после принятия технических исправлений к стандарту в 2. ISO/IEC 1. 48. 82: 2. В 1. 98. 9 году состоялся выход C++ версии 2.
Его новые возможности включали множественное наследование, абстрактные классы, статические функции- члены, функции- константы и защищённые члены. В 1. 99. 0 году вышло «Комментированное справочное руководство по C++», положенное впоследствии в основу стандарта. Последние обновления включали шаблоны, исключения, пространства имён, новые способы приведения типов и булевский тип. Стандартная библиотека C++ также развивалась вместе с ним. Первым добавлением к стандартной библиотеке C++ стали потоки ввода- вывода, обеспечивающие средства для замены традиционных функций C printf и scanf. Позднее самым значительным развитием стандартной библиотеки стало включение в неё Стандартной библиотеки шаблонов. В 1. 99. 8 году был опубликован стандарт языка ISO/IEC 1.
C++9. 8). Стандарт C++ не описывает способы именования объектов, некоторые детали обработки исключений и другие возможности, связанные с деталями реализации, что делает несовместимым объектный код, созданный различными компиляторами. Однако для этого третьими лицами создано множество стандартов для конкретных архитектур и операционных систем. В 2. 00. 3 году был опубликован стандарт языка ISO/IEC 1. В 2. 00. 5 году был выпущен отчёт Library Technical Report 1 (кратко называемый TR1). Не являясь официально частью стандарта, отчёт описывает расширения стандартной библиотеки, которые, как ожидалось авторами, должны быть включены в следующую версию языка C++.
Степень поддержки TR1 улучшается почти во всех поддерживаемых компиляторах языка C++. С 2. 00. 9 года велась работа по обновлению предыдущего стандарта, предварительной версией нового стандарта сперва был C++0. C++0x, сегодня. Одна из групп, разрабатывающих язык C++ и направляющих комитету по стандартизации C++ предложения по его улучшению — это Boost, которая занимается, в том числе, совершенствованием возможностей языка путём добавления в него особенностей метапрограммирования. Никто не обладает правами на язык C++, он является свободным. Однако сам документ стандарта языка (за исключением черновиков) не доступен бесплатно. В частности, технические доклады и технические характеристики публикуются, когда «видно будущее, но нет немедленной возможности соглашения для публикации международного стандарта.» До 2.
C++: TR 1. 97. 68: 2. C++, Технический отчёт 1) для расширений библиотеки в основном интегрирован в C++1.
TR 2. 91. 24: 2. 01. TR 2. 47. 33: 2. 01. Техническая спецификация DTS 1. Имя C+ не было использовано потому, что является синтаксической ошибкой в C и, кроме того, это имя было занято другим языком.
Язык также не был назван D, поскольку «является расширением C и не пытается устранять проблемы путём удаления элементов C». Эти принципы объясняют, почему C++ именно такой, какой он есть. Некоторые из них: Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C. Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно- ориентированное программирование и обобщённое программирование.
Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно. Максимально сохранить совместимость с C, тем самым делая возможным лёгкий переход от программирования на C. Избежать разночтений между C и C++: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы. Избегать особенностей, которые зависят от платформы или не являются универсальными.«Не платить за то, что не используется» — никакое языковое средство не должно приводить к снижению производительности программ, не использующих его. Не требовать слишком усложнённой среды программирования.
Стандарт C++ состоит из двух основных частей: описание ядра языка и описание стандартной библиотеки. Первое время язык развивался вне формальных рамок, спонтанно, по мере встававших перед ним задач. Развитию языка сопутствовало развитие кросс- компилятораcfront.
Ссылки на электронные книги / Книги в интернете / Литература. Самоучитель программирования на языке С++ в системе Borland C++Builder 4. Автор: С. Бобровский.
Язык: Русский. Size: 9. Кбhttp: //bcb. net. Язык программирования Си. Автор: Керниган Б., Ритчи Д.
Sprinkhuizen- Kuyper. Debugging C and C++ code in a Unix environmenthttp: //www. CPP/Documents/Debug. C.. lume. Frames. CPP/Download/debug. Lars Haendel. The Function Pointer Tutorialshttp: //www. CPP/Documents/Functi..
Frames. html. Al Dev (Alavoor Vasudevan)C++ How Tohttp: //www. CPP/Documents/CPPHOW..
Frames. html. Steve Heller. Optimizing C++ the WWW versionhttp: //www.
CPP/Documents/Optimi.. Frames. html. Thomas Papanikolaou.
C++ Course 1. 99. CPP/Download/CPPCourse. Bjarne Stroustrup. An Overview Of The C++ Programming Langaugehttp: //www. CPP/Download/crc.
Ален И. Голуб. Книга по С, С++ http: //info. Учимся программировать на С++http: //andron- st. Н. Джосьютис. C++ стандартная библиотека. Для профессионаловhttp: //andron- st. Голуб. Правила программирования на Си и Си++ (ВЕРЕВКА ДОСТАТОЧНОЙ ДЛИНЫ,ЧТОБЫ ВЫСТРЕЛИТЬ СЕБЕ В НОГУ) http: //webcenter. BOOK/RUSSIAN/T.. tlibitum.
П. Программирование на языке Chttp: //info. Richard Simon, Mark Schmidt. Sams Teach Yourself Visual C++. NET in 2. 4 Hourshttp: //lb. Библиотека программистаhttp: //it- books.
C. Шилдт. Самоучитель C++http: //lb. Вводный курс. Липпман.
С++ для начинающихhttp: //info. Андрей Александреску. Современное проектирование на C++http: //anatolix. Страуструп. Введение в язык C++http: //dim- dimonov. Страуструп. Справочное руководство по C++http: //www. Страуструп. Абстракция данных в языке C++http: //e- docs. Б. Страустрап. Объектно- ориентированное программированиеhttp: //dim- dimonov.
Джесс Либерти. Освой самостоятельно C++ за 2. Керниган, Д. Ритчи. Язык программирования Сиhttp: //anatolix. Руководство разработчикаhttp: //anatolix. Освой самостоятельноhttp: //itlibitum. BOOK/RUSSIAN/T.. tlibitum.
Docs/C/pdf/Builder. Архангельский. Программирование в C++ Builder 6http: //rapidshare. C/Arhangelckiy- BCB6. Builder Энциклопедияhttp: //itlibitum. BOOK/RUSSIAN/T.. tlibitum. Виктор Алексанкин, Наталия Елманова.
Borland C++ Builderhttp: //www. Doc/Koding/BCpp. Builder. Справка по C++Builder 4http: //www. Doc/Koding/cb. 4. Программирование под Windows NT и Windows 9. Книга в 2х томахhttp: //www. C/meshkov. 1. djvftp: //aleria.
C/meshkov. 2. djv. Visual C++. Уроки для начинающихhttp: //info.
Visual C++ для начинающихhttp: //info. Ю. Visual C++ 6. 0. Уроки программированияhttp: //xammepbook. Н. Программирование для Windows: использование Visual C++ и MFChttp: //athena. Дж. Visual C++ 6.
Полное руководствоftp: //aleria. C/Yang- Visual. C6. Секунов Н. Самоучитель Visual C++ 6ftp: //aleria. C/Sek.. 6. Samouchit. Kruglinski D. J., Wingo S., Shepherd G. Visual Programming C++ftp: //aleria. C/Kruglinski- Visual.
C. chm. Д. Круглински, С. Уингоу, Д. Шеферд. Программирование на Microsoft Visual C++ 6. MSDVD/Visual. C++. В., Фролов Г. В. Библиотека системного программиста.
Microsoft Visual C++ и MFC. Папка Addons Для Cs 1 6 Steam. Программирование для Windows 9.
Windows NT http: //www. Microsoft Visual C++ и MFC http: //www. Программирование для Internet с Microsoft Visual C++ и MFC в среде Windows 9.
Windows NThttp: //www. Пинкус. Visual C++ для начинающихhttp: //dim- dimonov. Профессиональное программирование на С++http: //adept. Visual C++. Краткий сборник советов с примерамиhttp: //adept. MFC шаг за шагом http: //adept.