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

Препоръчано

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

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

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

    Ключова разлика: думите викторина и тест се свързват взаимно. Тестът е кратък малък тест, който се очаква да бъде реагиран бързо, докато тестът е процедурен изпит, който изисква време. Думата „викторина“ обикновено се определя като „тест на знанието, особено кратък, неформален тест“. Те се провеждат в училищни нива и са краткотрайн
  • популярни сравнения: Разлика между Sake и Soju

    Разлика между Sake и Soju

    Ключова разлика: Sake и Soju са алкохолни напитки. Саке е алкохолна напитка от Япония, докато soju е алкохолна напитка от Корея. Sake и Soju са алкохолни напитки. Саке е алкохолна напитка от Япония, докато soju е алкохолна напитка от Корея. Саке, също изписано като саке или саки, често се нарича оризово вино. В Япония саке е общ термин, отнасящ се до всички алкохолни напитки. Това, което англоезичните стра
  • популярни сравнения: Разлика между .NET и ASP.NET

    Разлика между .NET и ASP.NET

    Ключова разлика: .NET е софтуерна рамка / инфраструктура, разработена от Microsoft, използвана за разработване, управление и внедряване на следващо поколение приложения и XML уеб услуги. ASP.NET е част от уеб приложенията на .NET framework, която се използва за изграждане на динамични уеб приложения и уеб услуги във всеки .
  • популярни сравнения: Разлика между AC и DC електричество

    Разлика между AC и DC електричество

    Ключова разлика: постоянен ток (DC) означава, че мощността в потоци в една посока. При постоянен ток, потокът от електрони е в постоянна посока, без да се променя на интервали и се осъществява чрез поставяне на постоянни магнити на жицата. Захранването с променлив ток (AC) се различава от DC, тъй като потокът от електрони в AC непрекъснато се променя, от преден към обратен и така нататък. Това е възможно чрез поставяне на вър
  • популярни сравнения: Разлика между DHTML и XHTML

    Разлика между DHTML и XHTML

    Ключова разлика: DHTML (Dynamic HTML) не е кодиращ език, а всъщност е колекция от технологии, които се използват с HTML, за да направят HTML по-интерактивен. XHTML (Extensible Hypertext Markup Language) е кодиращ език, който е идентичен с HTML, но с по-строг набор от синтактични правила, които се основават на XML стандарта. Много се прави в създаването на проста уеб страница, като кодиране, поставяне, динамични връзки и т.н. По време на стартирането на уеб браузъри и уеб страници, HTML кодиращият език ще свърш
  • популярни сравнения: Разлика между Бъди и Пич

    Разлика между Бъди и Пич

    Ключова разлика: Бъди е неформален начин да се обърне към мъжки приятел. Пич е жаргонен термин в американски английски за индивид. Мнозина щяха да чуят или използват думите, приятел и пич, когато седят или разговарят с приятели или когато някой иска нещо на непознат човек. Но какво означават тези думи? Приложими ли са за всички? Според Dictionary.com, 'Buddy' е: Да си спътник; бъдете приятелски настроени или на интимни термини. Бъди, Да стане приятелски; бъдете приятелски или интимн
  • популярни сравнения: Разлика между размера на хартията A4 и A6

    Разлика между размера на хартията A4 и A6

    Основна разлика: Серията ISO на листа с размери на листа се основава на съотношение на постоянна широчина и дължина от 1: квадратен корен от 2 (стойност приблизително = 1, 4142). А4 е размерът на стандартното бизнес писмо, докато А6 е една четвърт (1/4) от размера на А4. През 1920 г. д-р Порстман от Германия
  • популярни сравнения: Разлика между сметаната от крем и сирене

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

    Ключова разлика: Крема сирене е вид меко сирене. Крем-сиренето се прави чрез смесване на крема сирене с други съставки, за да се улесни разпространението. Кремообразно сирене и сметана от крема сирене са двата вида меки сирена. Няма голяма разлика между двете. Всъщност сметана от сирене е основно сметана. Крема сирене е меко, бяло сирене, което традиционно се прави от смес от пълномаслено мляко и прясна смета
  • популярни сравнения: Разлика между Целзий и Целзий

    Разлика между Целзий и Целзий

    Ключова разлика: Целзий и Целзий са различни термини, отнасящи се до една и съща температурна скала. Целзийката трябва да бъде премахната и да бъде заменена с Целзий от CGPM (General General des Poids et Measures) през 1948 г. Забелязали ли сте, че някои хора четат 35 ° C като 35 градуса по Целзий, докато други хора могат да прочетат същото точно измерване като 35 г

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

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

Ключова разлика: Дарението е обект, който се дава като кръв, пари, играчки, дрехи и т.н. Благотворителността е актът на предаване на предмети на някой, който може да се нуждае от него. Термините дарение и благотворителност са доста объркващи, тъй като изглеждат много сходни. Тези два термина са взаимосвързани, което затруднява