Является ли C/С++ одним языком или двумя языками? Я слышал, что С++ был только C с классами. Правильно ли это?
Является ли C/С++ одним языком или двумя языками?
Ответ 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, а также классы потоков стандартный ввод-вывод библиотека.
Другие примечания:
-
GCC позволяет указать, какой из этих языковых вариаций вы хотите скомпилировать (как и другие компиляторы, я конечно), с некоторыми ограничениями.
-
С++ 98 и С++ 03 имеют минимальные отличия в характеристиках и часто рассматриваются как в основном на одном и том же языке.
-
Лучшие вопросы, касающиеся общего подмножества C и С++: