Разница между C и C ++ с примерами | Языки программирования

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

C и C ++ - это два разных языка программирования. Первоначально C был разработан Деннисом Ритчи в AT & T Bell Labs в период с 1969 по 1973 год. C ++ - еще один универсальный язык программирования. Он был разработан с оригинального языка программирования Си. Он был разработан Бьярном Страуструпом в Bell Labs, начиная с 1979 года. C ++ первоначально назывался C with Classes, так как он был основан на C. Он был переименован в C ++ в 1983 году.

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 ++ поддерживает все эти функции.

Кроме того, C не поддерживает функцию NAMESPACE, в то время как 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 ++ поддерживает класс, объект, сокрытие данных, полиморфизм, наследование, абстракцию и т. Д.

функции

  • Не поддерживает перегрузку функций и операторов.
  • Невозможно использовать функции внутри структур
  • Не поддерживает виртуальные функции и ссылочные переменные
  • Не поддерживает обработку исключений
  • не поддерживает ссылочные переменные
  • не имеет функции пространства имен
  • может вызывать функцию main () через другие функции
  • Поддерживает перегрузку функций и операторов.
  • Может использовать функции внутри структур
  • Поддерживает виртуальные функции и ссылочные переменные.
  • Поддерживает обработку исключений с использованием блоков try и catch. Исключения используются для «серьезных» ошибок, которые делают код некорректным.
  • поддерживает ссылочные переменные
  • использует функцию NAMESPACE, которая позволяет избежать конфликтов имен.
  • не может вызвать функцию main () через другие функции.

Функции памяти

Использует функции 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;

Рекомендуем

Похожие статьи

  • разница между: Разница между NiCad, NiMH и литиевой батареей

    Разница между NiCad, NiMH и литиевой батареей

    Ключевое отличие: NiCad означает никель-кадмий, а NiMH - никель-гидридный металл. Оба используют гидроксид оксида никеля (NiOOH) в качестве положительного электрода. Есть много различных типов батарей, которые используют литий в качестве положительного электрода, наиболее распространенными типами литиевых батарей являются литий-ионные и литий-полимерные батареи. Литий-ионные аккумуляторы наиболее популярны среди трех. NiCad, NiMH и литиевые батареи являются тремя из наиболее часто используемых батарей сегодня. Они используются во всем - от обычных карандашных ячеек AA или AAA до таких устройств
  • разница между: Разница между коммерческим и инвестиционным банками

    Разница между коммерческим и инвестиционным банками

    Основное отличие: коммерческие банки обслуживают население и предоставляют такие услуги, как прием депозитов, предоставление кредитов и других основных инвестиционных продуктов. Инвестиционные банки - это финансовые учреждения, которые помогают частным лицам, корпорациям и правительствам в привлечении финансового капитала, подпи
  • разница между: Разница между Sony Xperia L и Samsung Galaxy S3

    Разница между Sony Xperia L и Samsung Galaxy S3

    Ключевое отличие: Sony Xperia L - смартфон среднего класса. Он имеет 4, 3-дюймовый экран с разрешением 854x480 пикселей и устойчивое к царапинам защитное стекло. Он работает на Android 4.1 с двухъядерным чипсетом Qualcomm MSM8230 с тактовой частотой 1 ГГц и 1 ГБ оперативной памяти. Samsung Galaxy S3 - это мул
  • разница между: Разница между Nokia Lumia 920 и LG Optimus G

    Разница между Nokia Lumia 920 и LG Optimus G

    Ключевое отличие: Одним из первых смартфонов под брендом является Nokia Lumia 920. Nokia Lumia 920 был одним из первых телефонов, разработанных для Windows Phone 8. Он был выпущен в ноябре 2012 года в качестве своего флагманского телефона. Популярной серией смартфонов от LG Electronics является LG Optimus. Некоторые из новых телефонов этой марки включают LG Optimus G, LG Optimus L5, LG Opti
  • разница между: Разница между альфа и бета-тестированием

    Разница между альфа и бета-тестированием

    Ключевое отличие: Альфа-тестирование - это первый этап тестирования программного обеспечения после разработки. Бета-тестирование проводится после того, как программа проходит альфа-тестирование. Процесс разработки любого приложения включает в себя серию тщательного тестирования, чтобы убедиться, что программа соответствует требованиям и не имеет ошибок, кото
  • разница между: Разница между CAST и CONVERT

    Разница между CAST и CONVERT

    Основное различие: CAST и CONVERT - это две функции, которые являются частью сервера SQL. Обе эти функции позволяют пользователю преобразовывать выражения из одного формата в другой. CAST и CONVERT - это две функции, которые являются частью сервера SQL, который является системой управления реляционными базами данных (
  • разница между: Разница между Nokia Lumia 520 и Samsung Galaxy Grand

    Разница между Nokia Lumia 520 и Samsung Galaxy Grand

    Ключевое отличие: Nokia Lumia 520 - это 4-дюймовый IPS емкостный сенсорный смартфон с разрешением 480x800 пикселей и разрешением около 233 ppi. Телефон поставляется с 8 ГБ встроенной памяти, которая может быть расширена до 64 ГБ. Телефон предлагает 1 ГГц на двухъядерном Snapdragon S4 и всего 512 МБ оперативной памяти, что немного разочаровывает. Samsung Galaxy Grand - смартфон сред
  • разница между: Разница между разработчиком программного обеспечения и разработчиком программного обеспечения

    Разница между разработчиком программного обеспечения и разработчиком программного обеспечения

    Ключевое отличие: разработчик программного обеспечения - это человек, занимающийся аспектами процесса разработки программного обеспечения. Их работа включает в себя разработку, внедрение и тестирование программного обеспечения. Инженер-программист, с другой стороны, является практиком разработки программного обеспечения. Они применяют инженерные принципы к проектированию, разработке, обслуживанию, тестированию и оценке
  • разница между: Разница между Chromecast и Amazon Fire TV Stick

    Разница между Chromecast и Amazon Fire TV Stick

    Ключевое отличие: Chromecast и Amazon Fire TV Stick - два самых популярных устройства потокового видео, доступных на рынке. Chromecast разработан и запущен Google и, следовательно, имеет безупречную поддержку приложений Google, таких как Youtube, Google Play Movies. Будучи продуктом Amazon, Amazon Fire в первую очередь продвигает контент Amazon. В современном технологическом веке все продвинуто вперед. Настолько

Выбор редакции

Разница между Spice Stellar Pinnacle Pro и Micromax A116 Canvas HD

Ключевое отличие: Spice Stellar Pinnacle Pro Mi-535 - это бюджетный четырехъядерный телефон среднего класса со скоростью 1, 2 ГГц. Он работает под управлением Android 4.2 Jelly Bean и оснащен 1 ГБ оперативной памяти. Телефон оснащен 8 Мп камерой с автофокусом и светодиодной вспышкой. Телефон также оснащен 5-мегапиксельной фронтальной широкоу