Основное различие: C и C ++ - два разных языка программирования. C ++ был разработан на языке программирования C; однако они весьма различны по своей природе. Наиболее очевидным отличием является то, что C является языком, ориентированным на процедуры, тогда как C ++ поддерживает как процедурное, так и объектно-ориентированное программирование, поэтому его часто называют гибридным языком.
C является одним из старейших в настоящее время используемых языков программирования и является одним из наиболее широко используемых языков программирования. Он постоянно использовался в приложениях, которые ранее кодировались на ассемблере. Это включает в себя компьютерную операционную систему UNIX. C также прямо или косвенно влияет на многие более поздние языки программирования, такие как C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python и оболочка C Unix. Несмотря на все эти новые языки, C по-прежнему остается популярным языком программирования.
Изначально C ++ начинался как усовершенствование C. Он был разработан для совместимости исходного кода и ссылок с C. Однако он добавил классы, виртуальные функции, перегрузку операторов, множественное наследование, шаблоны, обработку исключений и т. Д. В конце концов, он разработал достаточно, чтобы считаться языком программирования сам по себе. Первоначально он был ратифицирован в 1998 году как сертифицированный язык программирования ISO / IEC 14882: 1998. Сегодня C ++ сейчас широко используется для проектирования оборудования.
C - это язык программирования общего назначения, в котором точка с запятой (;) используется как терминатор оператора, а также фигурные скобки ({}) для группировки блоков операторов. Он имеет средства для структурного программирования, а его конструкция обеспечивает конструкции, которые могут эффективно отображаться в типичные машинные инструкции. Он также допускает область действия и рекурсию лексических переменных и имеет статическую систему типов, которая предотвращает многие непреднамеренные операции.
Однако, по сравнению с C ++, C имеет многочисленные ограничения. Поскольку C не является объектно-ориентированным, он не поддерживает концепции OOPS. C не поддерживает перегрузку функций и операторов. Он не может использовать функции внутри структур. Он не поддерживает виртуальные функции и ссылочные переменные или обработку исключений. Он также не поддерживает ссылочные переменные. Кроме того, C также не инкапсулирует и не защищает данные. Для сравнения, C ++ поддерживает все эти функции.
Эти два языка также различаются по способу работы с адресной памятью, ввода-вывода и программирования GUI. Например, C использует функции calloc (), malloc () и free () для выделения и освобождения памяти, в то время как C ++ использует new и delete. C использует scanf () и printf () для ввода и вывода, в то время как C ++ использует операторы cin >> и cout <<. C поддерживает инструмент GTK для программирования GUI, тогда как C ++ поддерживает инструменты Qt для программирования GUI. Другое отличие состоит в том, что C требует, чтобы один объявил все переменные в начале программы, тогда как в C ++ переменные могут быть объявлены где угодно в программе.
Кроме того, C ++ обычно считается более легким в освоении, поскольку он более удобен для пользователя, чем C. C ++ также имеет множество дополнительных функций, облегчающих кодирование, особенно для тех, кто является новичком в C-среде. Однако многие утверждают, что это действительно имеет значение. Два языка отличаются настолько сильно, что фактически могут быть двумя разными языками, независимыми друг от друга. Следует иметь в виду, что C гораздо более структурирован, чем C ++, тогда как C ++ был разработан, чтобы быть более выразительным и абстрактным, чем C.
Сравнение между C и C ++:
С | C ++ | |
основанный | Разработано Деннисом Ритчи в AT & T Bell Labs с 1969 по 1973 год. | Разработано Бьярном Страуструпом в Bell Labs с 1979 года. |
Исходный код | Исходный код программы в произвольном формате | Первоначально разработано на языке программирования C |
язык | Процедурно-ориентированный язык | Поддерживает как процедурные, так и объектно-ориентированные парадигмы программирования; поэтому его часто называют гибридным языком. |
Подход | Следует нисходящему подходу. | Следует подход снизу вверх. |
отношения | C является подмножеством C ++. Он не может запустить код C ++. | C ++ является надмножеством C. C ++ может выполнять большую часть кода C, в то время как C не может выполнять код C ++. |
Привод | Функционально-управляемый язык | Объектно-управляемый язык |
фокус | Ориентирован на метод или процесс, а не на данные. | Ориентирован на данные, а не на метод или процедуру. |
Строительные блоки | функции | Объекты |
Ключевые слова | Содержит 32 ключевых слова | Содержит 52 ключевых слова |
ООП Концепции | Поскольку язык «C» является процедурно-ориентированным языком, он не поддерживает такие понятия OOPS, как класс, объект, наследование, полиморфизм, скрытие данных и т. Д. | Как объектно-ориентированный язык, C ++ поддерживает класс, объект, сокрытие данных, полиморфизм, наследование, абстракцию и т. Д. |
функции |
|
|
Функции памяти | Использует функции calloc (), malloc () и free () для выделения и освобождения памяти. | Использует операторы new и delete для той же цели. |
Инкапсуляция | Не поддерживается. Данные и функции являются отдельными и свободными объектами. | Поддерживает инкапсуляцию. Данные и функции инкапсулированы вместе в форме объекта. Класс объектов обеспечивает план структуры объекта. |
Сокрытие информации | C не поддерживает скрытие информации. Здесь данные являются свободными объектами и могут управляться внешним кодом. | Инкапсуляция скрывает данные, чтобы гарантировать, что структуры данных и операторы используются по назначению. |
Данные | Поддерживает встроенные и примитивные типы данных. Данные не защищены из-за не объектно-ориентированного | Поддерживает как встроенные, так и определяемые пользователем типы данных. Данные защищены (скрыты) в C ++ |
уровень | Язык низкого уровня | Язык среднего уровня |
Ввод, вывод | Язык 'C' использует scanf () и printf () для ввода и вывода. | В языке C ++ для ввода и вывода используются операторы cin >> и cout <<. |
Объявление переменных | C требует, чтобы один объявил все переменные в верхней части программы. | В C ++ переменные могут быть объявлены в любом месте программы перед использованием. |
Многократная декларация | Допускается многократное объявление глобальных переменных. | Многократное объявление глобальных переменных не допускается. |
картографирование | Отображение между данными и функциями сложно и сложно. | Сопоставление данных и функций можно использовать с помощью «Объектов». |
GUI программирование | C поддерживает GTK инструмент для программирования GUI | C ++ поддерживает инструменты Qt для программирования GUI |
наследование | Наследование не возможно в C | Наследование возможно в C ++ |
Расширение файла | Имеет расширение файла .c | Имеет расширение файла .cpp |
Заголовочный файл по умолчанию | Заголовочный файл по умолчанию, используемый на языке C, это stdio.h | Заголовочный файл по умолчанию, используемый в C ++, это iosteam.h |
Некоторые примеры различий между C и C ++:
Примеры | С | C ++ |
Объявление переменной | Только наверху: Int I; для (i = 10; i <10; i ++) | В любом месте программы: для (int i = 10; i <10; i ++) |
Выделение памяти | Malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Новое: int * x = new int; int * x_array = new int [10]; |
Освобождение памяти | Свободно: бесплатно (х); бесплатно (x_array); | Удалять: удалить х; удалить [] x_array; |