Основна разлика: C и C ++ са два различни езика за компютърно програмиране. C ++ е разработен от езика за програмиране C; те обаче са доста различни по своя характер. Най-очевидната разлика е, че С е ориентиран към процедурата език, докато C ++ поддържа както процедурно, така и обектно-ориентирано програмиране, затова често се нарича хибриден език.
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 ++ поддържа всички тези функции.
Двата езика също се различават по начина, по който функциите на адресната памет, входно-изходното и 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 ++ поддържа клас, обект, скриване на данни, полиморфизъм, наследяване, абстракция и др. |
Функции |
|
|
Функции на паметта | Използва функции 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; |