Подтвердить что ты не робот

Является ли C/С++ одним языком или двумя языками?

Является ли C/С++ одним языком или двумя языками? Я слышал, что С++ был только C с классами. Правильно ли это?

4b9b3361

Ответ 1

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

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

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

Ответ 2

"C/С++" - это точно нулевые языки. Он не существует.

С другой стороны, C - это язык.

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


Чтобы быть ясным, @Zoidberg был на месте:

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

Ответ 3

Это два языка. Вызов С++ "C с классами" похож на вызов слона четырехногим животным. Это кажется правдой, пока вы не сравните его с мышью.

Существует много языков, которые происходят из C: С++, Java, С#, JavaScript, csh, список можно продолжить. Они все разные по-разному, но они имеют похожий синтаксис.

Конечно, C происходит от B. Но это уже другая история (и никто больше не заботится о B.)

Ответ 4

Простой ответ: два языка

Это два разных языка, хотя почти любой код C является допустимым (не обязательно хорошим) кодом на С++.

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

Ответ 5

C/С++ - это два языка. C - один язык, а С++ - другой. С++ считается "лучше" C. C является процедурным, тогда как С++ объектно-ориентированным. С++ имеет множество улучшений над C и имеет аналогичный синтаксис C.

Ответ 6

Это два разных языка. С++ назван так потому, что часть его коренится из C и в некотором смысле совместима с C.

Согласно Scott Myers Effective С++, мы можем рассматривать С++ как унифицированный язык со следующими четырьмя компонентами:

  • Часть языка C, блоки, операторы, препроцессор и т.д.
  • Объектно-ориентированный С++: включая класс, инкапсуляцию, наследование, полиморфизм и т.д.
  • Шаблон С++: включая шаблоны С++, метапрограммирование.
  • STL.

Итак, С++ в каком-то смысле более силен, чем C.

Ответ 7

ИМХО, я думаю, что ответ C/С++ - не один язык. Но два:

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

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

Ссылка

Ответ 8

Название "C" относится к семейству родственных языков, некоторые из которых формализованы как международные стандарты. К ним относятся K & RC, ANSI C, C99 и C11.

Название "С++" относится к семейству родственных языков, некоторые из которых формализованы как международные стандарты. К ним относятся  С++, 98,  С++ 03,  С++ 11,  С++ 14,  и предположительно С++ 17.

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

Прямой предшественник С++ на самом деле первоначально назывался "C с классами". Это подробно описано в книге Bjarne Stroustrup 1994 "Дизайн и эволюция С++" (а также здесь). Название в конечном итоге было изменено на "С++", в основном, как вежливость сообществу C, потому что стало слишком соблазнительно, когда люди сократили "C с классами" до "C" или "новый C".

В С++ существует множество языковых функций, которые не находятся в C (обратное верно в меньшей степени). В частности, модель на основе классов, благодаря своей возможности вызывать неявные вызовы функций, настолько мощна, что С++ имеет (довольно органично) развитую стили программирования более высокого уровня, которые делают типичное использование С++ намного отличнее, чем у C. Наиболее примечательные примеры этого связаны с концепцией Инициализация ресурсов - это Инициализация, который воплощен в стандартных классах string, vector и shared_ptr, а также классы потоков стандартный ввод-вывод библиотека.

Другие примечания: