Разлика между C и C ++ с примери | Програмни езици

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

C и C ++ са два различни езика за компютърно програмиране. C е първоначално разработена от Денис Ричи в AT&T Bell Labs между 1969 и 1973 г. C ++ е друг език за програмиране с общо предназначение. Той е разработен от оригиналния език за програмиране C. Тя е разработена от Bjarne Stroustrup в Bell Labs от 1979 г. C ++ първоначално е бил наречен C с Classes, тъй като е базиран на C. Той е преименуван на C ++ през 1983 година.

C е един от най-старите програмирани в момента езици за програмиране и е един от най-широко използваните езици за програмиране. Той е бил постоянно използван в приложения, които преди това са били кодирани на асемблер. Това включва компютърната операционна система UNIX. C също така пряко или косвено е повлияло много от по-късните езици за програмиране, като C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python и C shell на Unix. Въпреки всички тези нови езици, C все още остава популярен език за програмиране.

C ++ първоначално стартира като подобрение на C. Той е проектиран да бъде съвместим с източника и връзката с C. Въпреки това, той добавя класове, виртуални функции, претоварване на оператора, множество наследяване, шаблони, обработка на изключения и т.н. достатъчно, за да се счита самостоятелно за програмен език. Първоначално той е ратифициран през 1998 г. като сертифициран език за програмиране ISO / IEC 14882: 1998. Днес C ++ се използва често за хардуерния дизайн.

C е език за програмиране с общо предназначение, който използва точка и запетая (;) като терминатор на изявление, както и фигурни скоби ({}) за групиране на блокове от изрази. Той разполага със съоръжения за структурирано програмиране и неговият дизайн осигурява конструкции, които могат ефективно да придвижват до типични машинни инструкции. Той също така позволява лексикална променлива обхват и рекурсия и има статична система тип, която предотвратява много нежелани операции.

Въпреки това, в сравнение с C ++, C има множество ограничения. Тъй като С не е обектно ориентиран, той не поддържа OOPS концепции. C не поддържа функция и претоварване на оператора. Не може да използва функции вътре в структурите. Той не поддържа виртуални функции и референтни променливи или обработка на изключения. Той също така не поддържа референтни променливи. Освен това С също не капсулира или обезопасява данни. За сравнение, C ++ поддържа всички тези функции.

Освен това, C не поддържа NAMESPACE, докато C ++ го прави. Пространството на имената е окончателен регион, който позволява да се групират идентификаторите (имената на типовете, функциите, променливите и т.н.). Пространствата от имена могат да се използват за организиране на код в логически групи и за предотвратяване на сблъсъци на имена. Това е особено полезно, когато кодовата база включва множество библиотеки, което в идеалния случай прави кода податлив на сблъсъци на имена.

Двата езика също се различават по начина, по който функциите на адресната памет, входно-изходното и GUI програмирането. Например, C използва calloc (), malloc () и free () функции за разпределяне и де-разпределение на паметта, докато C ++ използва нови и изтрива. 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 ключови думи

OOPS концепции

Тъй като „C“ езикът е ориентиран към процедурата език, той не поддържа OOPS концепции като клас, обект, наследяване, полиморфизъм, криене на данни и др.

Като обектно-ориентиран език C ++ поддържа клас, обект, скриване на данни, полиморфизъм, наследяване, абстракция и др.

Функции

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

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

Използва функции calloc (), malloc () и free () за разпределяне и преразпределяне на паметта.

Използва нови оператори и изтрива за същата цел.

Капсулирането

Не поддържа. Данните и функциите са отделни и свободни обекти.

Поддържа капсулиране. Данните и функциите са капсулирани заедно във формата на обект. Класът Objects осигурява план на структурата на обекта.

Скриване на информация

C не поддържа скриване на информация. Тук данните са свободни обекти и могат да бъдат манипулирани от външен код.

Инкапсулирането крие данните, за да се гарантира, че структурите от данни и операторите се използват по предназначение.

Данни

Поддържа вградени и примитивни типове данни.

Данните не са защитени поради не-обектно ориентирано

Поддържа както вграден, така и потребителски тип данни.

Данните са защитени (скрити) в C ++

ниво

Език на ниско ниво

Език на средно ниво

Вход изход

"C" език използва scanf () и printf () за въвеждане и извеждане.

"C ++" език използва cin >> и cout << оператори за въвеждане и извеждане.

Декларация за променливи

С изисква да се декларират всички променливи в горната част на програмата.

В C ++, променливите могат да бъдат декларирани навсякъде в програмата преди употреба.

Многократна декларация

Разрешено е многократно деклариране на глобални променливи.

Не се допускат многократни декларации за глобални променливи.

картография

Картирането между данни и функции е трудно и сложно.

Картирането между данни и функция може да се използва с помощта на „Обекти“

Програмиране с GUI

C поддържа GTK инструмент за програмиране на GUI

C ++ поддържа Qt инструменти за програмиране на GUI

наследяване

Наследяването не е възможно при С

Наследяването е възможно в 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 ++)

Разпределение на паметта

изчистване:

int * x = malloc (sizeof (int));

int * x_array = malloc (sizeof (int) * 10);

Ново:

int * x = нов int;

int * x_array = new int [10];

Освобождаване на паметта

Безплатно:

безплатно (x);

безплатно (x_array);

Изтрий:

изтриване x;

delete [] x_array;

Препоръчано

Свързани Статии

  • разлика между: Разлика между анорексия и булимия

    Разлика между анорексия и булимия

    Ключова разлика: Анорексия нервоза и Булимия нервоза са два различни вида хранителни разстройства. Анорексията се характеризира с неподходящи хранителни навици и намален прием на храна. Булимията се характеризира с преяждане и насилствено прочистване на храната от тялото. В днешния свят е поставен много акцент върху физиката. Всеки иска да
  • разлика между: Разлика между гълъбите и гълъбите

    Разлика между гълъбите и гълъбите

    Ключова разлика: Гълъбите и гълъбите принадлежат към семейство Columbidae, което включва около 310 вида птици. Терминът „гълъби“ и „гълъби“ често се използват като взаимозаменяеми. В орнитологичната практика птиците с по-големи размери се наричат ​​гълъби, а по-малките гълъби. Гълъбите и гълъбите всъщност имат много общо
  • разлика между: Разлика между Quit и Resign

    Разлика между Quit и Resign

    Ключова разлика: Quit е просто неформален начин да се каже оставката. И двата по същество означават едно и също нещо, с изключение на това, че подаването на оставка се използва по по-формален и професионален начин, докато отказът е по-разговорен и неформален. За всички цели се откажат и да подадат оставка - едно и също нещо, и двете посочват, че служител е напуснал работата си по собствена воля. Quit е просто неформален начин да се каже, че трябва да подаде ост
  • разлика между: Разлика между гмуркане и гмуркане с шнорхел

    Разлика между гмуркане и гмуркане с шнорхел

    Ключова разлика: подводното гмуркане и гмуркането с шнорхелк са подводно спортно приключение и развлекателна дейност, която се ползва по целия свят. Основната разлика между двата термина е, че водолазът ще бъде снабден с кислороден резервоар на гърба си, за да диша от него под водата. А водолазът не е задължително да е плувец и ако премахнем кислородния резервоар от костюма на водолаза, тогава дейността е известна като гмуркане с шнорхел. Гмуркането с шнорхел е всъщност плуване с шнорхел, който е тръба и маска, ко
  • разлика между: Разлика между Шист и Гнайс

    Разлика между Шист и Гнайс

    Ключова разлика: Шист и Гнайс са два различни вида скали, които изглеждат забележително. Шистовете са вид метаморфна скала със средна степен, която съдържа плоски, листовидни зърна по образец. Гнайс, от друга страна, се оформя в модела на слоеве на плоски структури. Шист и Гнайс са два различни вида скали, които изглеждат забележително. Причината з
  • разлика между: Разлика между смартфон и нормален телефон

    Разлика между смартфон и нормален телефон

    Ключова разлика: Смартфоните са всички мобилни телефони, които са подобни на мини компютъра. Смартфоните предлагат разнообразие от функции, които позволяват разширени изчислителни възможности и свързаност. Нормалният телефон има основното предназначение само да се обаждате и изпращате текстови съобщения. Нормален телефон е прост телефон, който се използва главно от хора, които
  • разлика между: Разлика между Sony Xperia Z Tab и Google Nexus 7

    Разлика между Sony Xperia Z Tab и Google Nexus 7

    Ключова разлика: Sony наскоро обяви модернизираната линия от смартфони и таблети. Заедно с новия флагмански телефон Sony Xperia Z, компанията добави и нов таблет - Sony Xperia Z Tab. Таблетът поддържа 10, 1-инчов TFT капацитивен сензорен екран и е създаден с помощта на технологията Sony Mobile BRAVIA
  • разлика между: Разлика между хлор и хлорид

    Разлика между хлор и хлорид

    Ключова разлика: Хлорът е естествено срещащ се елемент със символ Cl и атомен номер 17. При стандартни условия елементът е жълтозелен газ. Хлоридът е йон от хлор. По същество, когато атомите печелят или губят електрони, те стават йони. Хлорните атоми получават един електрон, за да се превърнат в хлорен йон (Cl−). Един йон не може да остане в свободно състояние и трябва да се комбинира с друг елемент или елементи, за д
  • разлика между: Разлика между Drupal 6 и Drupal 7

    Разлика между Drupal 6 и Drupal 7

    Ключова разлика: Drupal има много версии и в момента работи на версия 7. Всяка версия има за цел да направи системата по-лесна за ползване и предлага различни функции, които позволяват на уебсайтовете да бъдат по-динамични по своя характер. Друпална версия 6 беше въведена през февруари 2008 г., а Drupal версия 7 беше въведена през януари 2011 г. Drupal е рамка за управление на съдържанието или CMS, която позволява на потребит

Избор На Редактора

Разлика между Дядо Коледа и Свети Николас

Ключова разлика: Дядо Коледа е голям пухкав мъж, който дава подаръци на хубави деца на Коледа. Свети Николаос е светец, роден през 270 г. сл. Хр. И помагащ на нуждаещите се. Дядо Коледа произлиза от Св. Николаос. Коледа е една от най-очакваните празници в годината. Децата и възрастните обичат усещането