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

Препоръчано

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

  • разлика между: Разлика между BlackBerry Z10 и Samsung Galaxy S3

    Разлика между BlackBerry Z10 и Samsung Galaxy S3

    Ключова разлика: Blackberry Z10 е най-новият смартфон, който е издаден през януари 2013 г. от Research in Motion. Z10 е бар телефон, който се предлага с 4.2-инчов капацитивен сензорен екран, който има плътност от около 355 ppi, осигуряващ ясен и остър дисплей. Ако поддържа 1.5 GHz Dual-Core Krait, 2GB RAM с 16 GB вътрешен капацитет за съхранение и разширяем капацитет до 64 GB. Galaxy S3 е мултитъч смартфон с плосък форм
  • разлика между: Разлика между злото и дявола

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

    Ключова разлика : Думата зло и дявол са почти взаимозаменяеми, много тясно свързани с тяхното значение и употреба. Ако опишете някого като зло, значи означава, че те са много нечестиви по природа и се радват да правят неща, които увреждат други хора. Докато дяволът означава лош или жесток човек. Дяволът е олицетворение на нечестието, докато злото е състояние на нечестие. Това прави ангелите или Бог обратното на дявола, докато доброто е антоним на
  • разлика между: Разлика между Lenovo Thinkpad Twist и Lenovo IdeaPad Yoga 13

    Разлика между Lenovo Thinkpad Twist и Lenovo IdeaPad Yoga 13

    Ключова разлика: Както Lenovo Thinkpad Twist, така и IdeaPad Yoga 13 са конвертируеми лаптопи с възможност за сгъване назад. Това позволява на устройството да заема четири режима на проектиране. Това включва режим на лаптоп, режим Tablet, режим на палатка и накрая режим Stand. Lenovo Thinkpad Twist има допълнителна възмож
  • разлика между: Разлика между MDF и морския шперплат

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

    Основна разлика: МДФ означава дървесно-влакнести плочи със средна плътност. Това е изработен дървесен продукт. Създава се чрез разграждане на дървесните остатъци на дървесни влакна. Тези дървесни влакна след това се комбинират с восък и свързващо вещество от смола. След това сместа се сплесква и се прави в панели чрез прилагане на
  • разлика между: Разлика между захарта на кастора и захарната смес

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

    Основна разлика: Захарта е обобщеното наименование за хранителни вещества със сладък вкус. Кастор захар е известен също като пудра захар, фина захар, ултрафини захар или бар захар. Това е вид гранулирана захар, която има фини гранулирани кристали, обикновено 0, 35 mm. Заледялата захар е супер фина захар, по-фина от дори рицино
  • разлика между: Разлика между съперник и конкурент

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

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

    Разлика между eMMC и SSD

    Ключова разлика: eMMC означава Embedded MultiMediaCard, докато SSD означава Solid-state или Solid-state диск. Основната разлика между двете е, че eMMC е тип флаш памет, базиран на стандарта MMC, докато SSD е тип твърдо съхранение. eMMC и SSD са два различни вида памет. eMMC означава Embedded MMC, докато MMC означава MultiMediaCard. Това е тип стандартна ка
  • разлика между: Разлика между Samsung Galaxy Note 3 и Note 3 Neo

    Разлика между Samsung Galaxy Note 3 и Note 3 Neo

    Ключова разлика: Galaxy Забележка 3 идва с 5.7 инчов екран 1080p Super AMOLED дисплей. Samsung Galaxy Note 3 Neo е по-ниска ценова версия на Note 3 и се предлага с малко по-малък 5.5-инчов Super AMOLED дисплей. Големите екрани се превърнаха в най-новата тенденция, като много хора отиват големи или се прибират в
  • разлика между: Разлика между данъка върху продажбите и акциза

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

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

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

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

Ключова разлика : термините „възрастни граждани и възрастни хора“ са скандално сходни и се използват взаимозаменяемо. Обикновено пенсионерите се класифицират като възрастни граждани в обща терминология. Като има предвид, възрастни хора означава човек, който е близо до живота си възраст или е над него. Известни речници на английски език, като например Webster's, категориз