Программирование на C/C++

C++ - это язык объектно-ориентированного программирования общего назначения (ООП), разработанный Бьярном Страуструпом и являющийся расширением языка Си. Следовательно, можно кодить на C++ в «стиле C» или «объектно-ориентированном стиле». В определенных сценариях на нем можно кодить любым способом и, таким образом, он является эффективным примером гибридного языка.
С++ считается языком промежуточного уровня, так как он включает в себя функции языка высокого и низкого уровня. Первоначально язык назывался «C с классами», так как он имел все свойства языка C с дополнительным понятием «классы». Тем не менее, он был переименован в C++ в 1983 году.
C ++ - один из самых популярных языков, в основном используемый с системным/прикладным программным обеспечением, драйверами, клиент-серверными приложениями и встроенным программным обеспечением.
Основным преимуществом C++ является коллекция предопределенных классов, представляющие собой типы данных, которые могут быть созданы несколько раз. Язык также облегчает объявление пользовательских классов. Классы могут дополнительно приспосабливать функции-члены для реализации определенной функциональности. Несколько объектов определенного класса могут быть определены для реализации функций в классе. Объекты могут быть определены как экземпляры, созданные во время выполнения. Эти классы также могут наследоваться другими новыми классами, которые по умолчанию принимают общедоступные и защищенные функции.
C++ включает в себя несколько операторов, таких как сравнение, арифметика, битовые манипуляции и логические операторы. Одна из наиболее привлекательных особенностей C++ заключается в том, что он допускает перегрузку некоторых операторов, таких как сложение.
Некоторые из основных концепций языка программирования C++ включают полиморфизм, виртуальные и дружественные функции, шаблоны, пространства имен и указатели.
Наиболее популярные продукты категории Программирование на C/C++ Все продукты категории
Производители Программирование на C/C++
F.A.Q. Программирование на C/C++
FAQ Бьярна Страуструпа
C лучше, чем C++ для небольших проектов, верно?
Нет, я думаю. Я никогда не видел проект, для которого C был лучше C++ по любой причине, кроме отсутствия хорошего компилятора C++.
Является ли C подмножеством C++?
В строгом математическом смысле, C не является подмножеством C++. Существуют программы, которые являются допустимым C, но не допустимым C++, и даже несколько способов написания кода, который имеет различное значение в C и C++. Тем не менее, C++ поддерживает все методы программирования, поддерживаемые C. Каждая C-программа может быть написана практически одинаково на C++ с одинаковой эффективностью времени выполнения и пространства. Нередко можно конвертировать десятки тысяч строк ANSI C в C++ в стиле C за несколько часов. Таким образом, C++ является настолько же надмножеством ANSI C, насколько ANSI C является надмножеством K&R C, и ISO C++ является надмножеством C++, как это было в 1985 году.
В чем разница между C и C++?
C++ является прямым потомком C, который сохраняет почти все C как подмножество. C++ обеспечивает более строгую проверку типов, чем C, и напрямую поддерживает более широкий диапазон стилей программирования, чем C. C++ является «лучшим C» в том смысле, что он поддерживает стили программирования, выполненные с использованием C с лучшей проверкой типов и большей поддержкой нотации (без потери эффективности). В том же смысле ANSI C лучше, чем K&R C. Кроме того, C++ поддерживает абстракцию данных, объектно-ориентированное программирование и общее программирование.
Я никогда не видел программу, которая могла бы быть выражена лучше в C, чем в C++ (и я не думаю, что такая программа могла бы существовать - каждая конструкция в C имеет очевидный эквивалент C++). Тем не менее, все еще существует несколько сред, в которых поддержка C++ настолько слаба, что вместо нее есть преимущество.
Вы действительно думаете, что C и C++ могут быть объединены в один язык?
Я думаю, что было бы очень хорошо для сообщества C/C++, если бы они были. То есть, если бы несовместимости C/C++ систематически и полностью устранялись, и эта будущая эволюция была организована так, чтобы предотвратить возникновение новых несовместимостей. Возможно ли это, другой вопрос.
Моя основная мысль заключается в том, что текущие несовместимости C/C++ - это «происшествия истории», которые не имеют никаких фундаментальных причин (хотя все они «выглядели как хорошая идея в то время» для некоторых компетентных и доброжелательных людей). Несовместимость C/C++ не дает никаких преимуществ сообществу в целом, создает серьезные проблемы для большой части сообщества C/C++ и может - с большим трудом - быть устранена.
Более подробное изложение моих взглядов на совместимость с C/C++ смотрите в серии статей, которые я написал об этом:
- B. Stroustrup: C and C++: Case Studies in Compatibility. The C/C++ Users Journal. September 2002.
- B. Stroustrup: C and C++: A Case for Compatibility. The C/C++ Users Journal. August 2002.
- B. Stroustrup: C and C++: Siblings. The C/C++ Users Journal. July 2002.
- B. Stroustrup: Sibling rivalry: C and C++. AT&T Labs - Research Technical Report. TD-54MQZY. January 2002.
Я полагаю, что если устранить несовместимости (путем внесения изменений в C и C++), все равно будут сущности, называемые C и C++, но тогда C действительно будет определяться как подмножество C++.
Почему вы сделали C++ (почти) совместимым с C?
Я хотел, чтобы C++ был совместим с полным языком с достаточной производительностью и гибкостью даже для самых требовательных систем программирования. Я совершенно боялся создавать еще один симпатичный язык с непреднамеренными ограничениями.
В то время я считал C лучшим из доступных языков системного программирования. Тогда это было не так очевидно (в 1979 г.), как позже, но у меня были эксперты, такие как Деннис Ричи, Стив Джонсон, Сэнди Фрейзер, Грег Чессон, Даг Макилрой и Брайан Керниган, по которым я мог учиться и получать отзывы. Без их помощи и совета, а также без C, C++ был бы мертворожденным.
Вопреки повторным слухам, мне никогда не говорили, что я должен использовать C; и при этом я никогда не говорил, чтобы не использовать C. Фактически, первое руководство по C++ выросло из troff-источника руководства по C, которое дал мне Деннис. Многие новые языки были разработаны в лабораториях Bell; в «Исследованиях», по крайней мере, не было правил, усиливающих языковой фанатизм.
Что вы думаете о C/C++?
Нет, это не тот вопрос, который мне часто задают. В этом смысле, это единственный «поддельный FAQ» в этом FAQ. Тем не менее, это должен быть FAQ, потому что люди используют «C/C++», как если бы он имел в виду что-то конкретное, и как будто они знали, что это значит, что приводило к большим путаницам и страданиям. Люди должны спросить "Что такое C/C++?" а затем поразмыслив прекратить использовать термин. Это вредит.
Нет языка под названием "C/C++". Фраза обычно используется людьми, которые не имеют понятия о программировании (например, персонал отдела кадров и плохие менеджеры). В качестве альтернативы, его используют люди, которые просто не знают C++ (и часто тоже не знают C). При использовании программистами это обычно указывает на отношение «C++ - C с несколькими полезными и множеством бесполезных добавленных сложных функций». Зачастую это точка зрения людей, которые любят писать свои собственные строки и хеш-таблицы, мало знакомые со стандартной библиотекой, помимо printf и memcpy. Есть люди, которые придерживаются ограниченного подмножества C++ по вполне веским причинам, но они (насколько я заметил) не люди, которые говорят «C/C++».
Я использую C/C++ только в таких выражениях, как «C/C++ совместимость» и «C/C++ community».

C++ Programming Language
Definition - What does C++ Programming Language mean?
https://www.techopedia.com/definition/26184/c-programming-languageBjarne Stroustrup's FAQ
http://www.stroustrup.com/bs_faq.html#C-is-better