ПоставщикамБлог
Вход

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

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

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

С++ считается языком промежуточного уровня, так как он включает в себя функции языка высокого и низкого уровня. Первоначально язык назывался «C с классами», так как он имел все свойства языка C с дополнительным понятием «классы». Тем не менее, он был переименован в C++ в 1983 году.

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

Основным преимуществом C++ является коллекция предопределенных классов, представляющие собой типы данных, которые могут быть созданы несколько раз. Язык также облегчает объявление пользовательских классов. Классы могут дополнительно приспосабливать функции-члены для реализации определенной функциональности. Несколько объектов определенного класса могут быть определены для реализации функций в классе. Объекты могут быть определены как экземпляры, созданные во время выполнения. Эти классы также могут наследоваться другими новыми классами, которые по умолчанию принимают общедоступные и защищенные функции.

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

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

Наиболее популярные продукты категории Программирование на C/C++ Все продукты категории

Поставщики Программирование на C/C++

The Product Engine

The Product Engine

The Product Engine - это компания, основанная в 2001 году и расположенная в самом сердце Силиконовой долины, предоставляющая комплексные... Подробнее
Производитель, Поставщик

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».

Материалы