Разница между 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;

Рекомендуем

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

  • разница между: Разница между ASP и ASPX

    Разница между ASP и ASPX

    Ключевое отличие: .asp - это имя файла для страницы, разработанной ASP. ASP расшифровывается как Active Server Pages. Он широко известен как классический ASP или ASP Classic. Это серверная среда сценариев, разработанная и выпущенная Microsoft. .aspx - это имя файла для страницы, разработанной ASP.NET. ASP.NET - это серверная среда веб-приложений. ASPX расшифровывается как Active Server Pages
  • разница между: Разница между Samsung Galaxy Mega 6.3 и iPhone 5

    Разница между Samsung Galaxy Mega 6.3 и iPhone 5

    Ключевое отличие: Samsung расширила свои предложения в категории фаблетов, представив Samsung Galaxy Mega 5.8 и Samsung Galaxy Mega 6.3. Samsung Galaxy Mega 6.3 назван так благодаря 6, 3-дюймовому TFT-емкостному сенсорному экрану с разрешением 720 x 1280 пикселей. Телефон оснащен двухъядерным процессором Cortex-A15 с тактовой частотой 1, 7 ГГц и оперативной памятью 1, 5 ГБ. iPhone 5, больше, чем его п
  • разница между: Разница между устьем и дельтой

    Разница между устьем и дельтой

    Ключевое отличие: Дельта - осадочное месторождение, сформированное в устье некоторых рек. Это обычно имеет треугольную форму. С другой стороны, лиман представляет собой полузакрытый водоем, где пресная вода встречается с океаном. Дельта - это в основном осадок, содержащий песок и почву. Это обычно встречается как выпуклость береговой линии, где река входит в океан, море или любой другой стоящий водоем. Эта выпуклость
  • разница между: Разница между морскими котиками и Delta Force

    Разница между морскими котиками и Delta Force

    Ключевое отличие: Морские котики и Дельта Силы - это два разных типа сил специальных операций, которые входят в состав Вооруженных сил США. Основное различие между ними состоит в том, что Морские котики являются силами специальных операций ВМС США, тогда как Силы Дельты являются силами специальных операций армии США. Морские котики и Delta Force - это два разных типа сил специальных операций, которые входят в состав Вооруженных сил США. Силы специального назначения или спецоперации - это военные подразделения, которые хорошо подготовлены для выполнения нетрадиционных, часто
  • разница между: Разница между бизоном и африканским буйволом

    Разница между бизоном и африканским буйволом

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

    Разница между правилами и правилами

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

    Разница между мокрой и сухой батареей

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

    Разница между онкологом и гематологом

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

    Разница между ортопедом и ортопедом

    Ключевое различие: разница между ортопедом и педикюром не имеет ничего общего. Они оба одинаковы. Подиатрия или педикюр - это отрасль медицины, которая занимается изучением диагноза, медико-хирургического лечения заболеваний стопы, голеностопного сустава и голеней. Они дают профессиональные консультации по профилактике проблем с ногами, в дополнение к правильному уходу за ногой. Американская Ассоциация Педиатрической Медицины определяет ортопеда как «доктора подиатрической медицины (

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

Разница между армейским резервом и национальной гвардией

Ключевое отличие: резерв армии США (USAR) - Федеральные резервные силы армии США. Национальная гвардия включает в себя Армейскую национальную гвардию Соединенных Штатов и Воздушную национальную гвардию Соединенных Штатов. Вместе армейский резерв и армейская национальная гвардия составляют резервные компоненты вооруженных сил США. Человек, находящийся в запасе, служит в армии только неполный рабочий де