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

Препоръчано

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

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

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

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

    Разлика между кост и хрущял

    Основна разлика: Основната разлика между костите и хрущялите е, че костта е твърда и твърда тъкан, докато хрущялът е мека, еластична и гъвкава тъкан. Хрущялът се намира в ушите, носа и ставите на тялото, докато костите съставляват скелетната система на тялото. Човекът е сложно същество, което се състои от сложна скелетна система, която включва костите и хрущялите сред различни други. Костта е в основата на скелетната система; Въпреки това, други като хрущяла също има
  • разлика между: Разлика между зависимите и зависимите

    Разлика между зависимите и зависимите

    Ключова разлика: В британския английски език има малка разлика между двете думи. „Зависим“ се използва като прилагателно, докато „зависим“ се използва като съществително. В американския английски обаче "зависим" обикновено се използва като и двете. Много хора вярват, че думата „зависима“ всъщност е неправи
  • разлика между: Разлика между Samsung Galaxy Mega 5.8 и Samsung Galaxy S3

    Разлика между Samsung Galaxy Mega 5.8 и Samsung Galaxy S3

    Основна разлика: Samsung вече разшири своите предложения в категорията phablet, като представи Samsung Galaxy Mega 5.8 и Samsung Galaxy Mega 6.3. Samsung Galaxy Mega 5.8 е обявен за такъв поради своя 5.8-инчов TFT капацитивен сензорен екран, с резолюция от 540 x 960 пиксела. Телефонът се захранва от двуядрен 1.4 GHz процесор с 1.5 GB RAM. Galaxy S3 е мултитъч смартфон с плосък формат, който беше пуснат през май
  • разлика между: Разлика между пътнически чек и личен чек

    Разлика между пътнически чек и личен чек

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

    Разлика между инвестиционно банкиране и търговско банкиране

    Ключова разлика: Инвестиционните банки са финансови институции, които подпомагат физически лица, корпорации и правителства в набирането на финансов капитал, като поемат или действат като агент на клиента при емитирането на ценни книжа. Търговска банка е финансова институция, която предоставя капитал на дружества под формата на дялово участие вместо заеми. За широката общественост банката е организация, която позволява на клиентит
  • разлика между: Разлика между HTC One X + и BlackBerry Z10

    Разлика между HTC One X + и BlackBerry Z10

    Ключова разлика: HTC One X + предлага 4, 7-инчов супер LCD 2 сензорен екран с плътност на пикселите приблизително 312 ppi, което означава, че екранът е доста страхотен и не показва никакви пиксели. Устройството се захранва от 1.7 GHz Quad-core процесор NVIDIA Tegra 3, което го прави по-бърз от оригиналния HTC One X. Blackberry Z10 е
  • разлика между: Разлика между ечемик и пшеница

    Разлика между ечемик и пшеница

    Ключова разлика: Ечемикът, принадлежащ към рода Hordeum на царството Plantae, е член на семейството на тревите и се счита за зърно. Ечемикът има различни приложения, включително хляб, зърнени храни, фураж за животни, за ферментация на бира и други дестилирани напитки, супи, яхнии, хляб и алгицид. Пшеницата, принадлежаща към рода Triticum, под царството на Plantae, също е член на тревното семейство и се счита за зърно. Пшеницата се използва в различни приложения по целия свят. Най-обичайната употреба на пшеницата включ
  • разлика между: Разлика между HTC One X + и iPhone 5

    Разлика между HTC One X + и iPhone 5

    Ключова разлика: HTC One X + предлага 4, 7-инчов супер LCD 2 сензорен екран с плътност на пикселите приблизително 312 ppi, което означава, че екранът е доста страхотен и не показва никакви пиксели. Устройството се захранва от 1.7 GHz Quad-core процесор NVIDIA Tegra 3, което го прави по-бърз от оригиналния HTC One X. iPhone 5 е най-но

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

Разлика между LG Optimus L7 II Dual, LG Optimus L5 II и LG Optimus L5 II Dual

Основна разлика: LG Optimus L7 II Dual е средночестотен телефон на LG. Телефонът е с два SIM телефона. Устройството разполага с 4.3 инчов IPS LCD, капацитивен сензорен екран с резолюция от 480 x 800 пиксела. Той работи с Android v 4.1.2 (JellyBean), който се поддържа от 1.0 GHz Dual-Core Qualcomm MSM8225 Snapdragon процесор и 768 MB R