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

Препоръчано

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

  • разлика между: Разлика между Spain Stellar Pinnacle Pro и Xolo X1000

    Разлика между Spain Stellar Pinnacle Pro и Xolo X1000

    Основна разлика: Spine Stellar Pinnacle Pro Mi-535 е средно-бюджетен четириядрен телефон със скорост 1.2 GHz. Тя работи с Android 4.2 Jelly Bean и се захранва от 1 GB RAM. Телефонът разполага с 8 MP камера с автофокус и LED светкавица. Телефонът също така разполага с 5 MP предна широкоъгълна допълнителна камера, също с автофокус. XOLO пусна XOLO X1000, бази
  • разлика между: Разлика между границата и депресията

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

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

    Разлика между Manic и Mania

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

    Разлика между HTC Butterfly и HTC One X

    Основна разлика: HTC Butterfly е високотехнологичен телефон от HTC Corporation. HTC Butterfly се продава в четири варианта: Droid DNA; J Butterfly HTL21; Butterfly X920d; и Butterfly X920e. Всички те се захранват с Quad-Core 1.5 GHz Krait процесор. HTC Droid притежава Quadcomm MDM615m, а вариантът на Butterfly и
  • разлика между: Разлика между добри и лоши бактерии

    Разлика между добри и лоши бактерии

    Ключова разлика: Добрите бактерии се намират почти навсякъде по тялото, включително върху кожата, вътре в устата, стомаха, червата и т.н. Основната задача на добрите бактерии е да се пребори с лошите бактерии и да не може да влезе в системата. Лошите бактерии са известни като лоши по някаква причина, тъй като възнамеряват да навредят на човешката система. Тези бактерии са отговорни за увреждане на вътрешните функции, причинявайки на т
  • разлика между: Разлика между Moto G и Moto X

    Разлика между Moto G и Moto X

    Ключова разлика: Мото G и Moto X са продукти на Motorola. И двамата са Android телефони с подобни характеристики, но разликата между двата телефона е, че Moto X е подобрена версия на Moto G. С процъфтяващ избор в мобилните телефони и нов смартфон, който се пуска всеки месец, марките трудно преживяват конкурен
  • разлика между: Разлика между Asus FonePad и Micromax A116 Canvas HD

    Разлика между Asus FonePad и Micromax A116 Canvas HD

    Ключова разлика: Asus обяви пускането на най-новия phablet - Asus Fonepad. Fonepad е 7-инчов Android таблет, който позволява на потребителите да правят телефонни разговори, като поставят устройството на ухото си. В phablet спорт 7-инчов IPS LED подсветка сензорен екран, който позволява мултитъч възможност за до 10 души. Екранът има резолюция от 12
  • разлика между: Разлика между Android 4.1 и Android 4.2

    Разлика между Android 4.1 и Android 4.2

    Ключова разлика: Android е Linux-базирана операционна система, притежавана и управлявана от Open Handset Alliance, консорциум от 84 водещи фирми, водени от Google. Android 4.1, също наречен Jelly Bean, беше пуснат на конференцията Google I / O на 27 юни 2012 г. Тя е базирана на ядрото на Linux 3.0.31. Той беше наследник на Android 4.0 (Ice Cream Sandwich) и предлага някои значителни подобрения на
  • разлика между: Разлика между Nokia Lumia 620 и Samsung Galaxy Grand

    Разлика между Nokia Lumia 620 и Samsung Galaxy Grand

    Основна разлика: Един от най-новите смартфони под марката е Nokia Lumia 620. Nokia Lumia 620 е насочена към първокласните купувачи, които искат да изпробват Windows Phone 8, но не могат да си позволят да харчат твърде много за него. Samsung Galaxy Grand е смартфон от среден клас, пуснат на пазара от Samsung Corporation. Телефонът е от поликарбонатна пластмаса и е с правоъгълна

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

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

Основна разлика: Католическата Библия съдържа оригиналните четиридесет и шест книги от Стария Завет (които включват седемте книги на Апокрифите) и двадесет и седемте книги на Новия Завет. Протестантската Библия включва само тридесет и девет книги от Стария завет и двадесет и седемте книги на Новия Завет. Основният проблем при разграничението