Ключова різниця: C та C ++ - це два різних мови комп'ютерного програмування. C ++ був розроблений з мови програмування С; однак вони мають різний характер. Найбільш очевидною відмінністю є те, що C - це мова, орієнтована на процедури, тоді як C ++ підтримує як процедурне, так і об'єктно-орієнтоване програмування, тому його часто називають гібридною.
C є однією з найстаріших в даний час використовуваних мов програмування і є однією з найбільш широко використовуваних мов програмування. Він постійно використовується в додатках, які раніше кодувалися на мові асемблера. Це включає в себе операційну систему комп'ютера UNIX. C також безпосередньо чи опосередковано вплинув на багато з більш пізніх мов програмування, такі як C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python і C-оболонка Unix. Незважаючи на всі ці нові мови, C все ще залишається популярною мовою програмування.
C ++ спочатку виходив як доповнення до C. Він був розроблений для сумісності з джерелом і зв'язком з C. Однак, він додав класи, віртуальні функції, перевантаження операторів, множинне успадкування, шаблони, обробка винятків і т.д. достатньо, щоб вважатися мовою програмування самостійно. Спочатку вона була ратифікована в 1998 році як сертифікована мова ISO / IEC 14882: 1998. Сьогодні C ++ зазвичай використовується для апаратного проектування.
C є мовою програмування загального призначення, яка використовує крапку з комою (;) як термінатор оператора, а також фігурні дужки ({}) для групування блоків операторів. Вона має засоби для структурованого програмування, а її конструкція надає конструкції, які можуть ефективно відображати типові машинні інструкції. Вона також дозволяє лексичну область змінної і рекурсію і має статичну систему типу, яка запобігає багато ненавмисних операцій.
Однак, у порівнянні з C ++, C має численні обмеження. Оскільки C не є об'єктно-орієнтованою, вона не підтримує концепції OOPS. C не підтримує функцію і перевантаження оператора. Він не може використовувати функції всередині структур. Він не підтримує віртуальні функції та змінні посилання або обробку виключень. Він також не підтримує змінні посилання. Крім того, C також не інкапсулює або захищає дані. Для порівняння, C ++ підтримує всі ці функції.
Дві мови також відрізняються за способами функцій пам'яті адреси, введення-виведення та програмування GUI. Наприклад, C використовує функції calloc (), malloc () і free () для розподілу та вилучення пам'яті, а C ++ використовує нові та видаляє. C використовує scanf () і printf () для введення і виведення, в той час як C ++ використовує cin >> і cout << оператори. C підтримує інструмент GTK для програмування графічного інтерфейсу, тоді як C ++ підтримує інструменти Qt для програмування графічного інтерфейсу. Інша відмінність полягає в тому, що C вимагає, щоб було оголошено всі змінні у верхній частині програми, тоді як в C ++ змінні можуть бути оголошені в будь-якому місці програми.
Крім того, C ++, як правило, вважається більш легким для вивчення, оскільки він є більш зручним для користувача, ніж C. C ++ також має численні додаткові функції, що полегшує кодування, особливо для тих, хто є новим у C-структурі. Однак багато хто стверджує, що це насправді має значення. Дві мови так сильно відрізняються, що вони можуть бути двома різними мовами, незалежно один від одного. Слід пам'ятати, що C набагато більш структурований, ніж C ++, тоді як C ++ був більш виразним і абстрактним, ніж C.
Порівняння між C і C ++:
C | C ++ | |
Заснований | Розроблено Деннісом Рітчі в лабораторіях AT&T Bell між 1969 і 1973 роками. | Розроблено Бьярном Страуструпом у Bell Labs, починаючи з 1979 року. |
Вихідний код | Вихідний код програми у вільному форматі | Спочатку розроблений з мови програмування C. |
Мова | Процедура Орієнтована мова | Підтримує як процедурні, так і об'єктно-орієнтовані парадигми програмування; тому його часто називають гібридною. |
Підхід | Дотримується підходу зверху вниз. | Слідує підходу знизу вгору. |
Відносини | C - підмножина C ++. Він не може працювати з кодом C ++. | C ++ є надмноженою версією C. C ++ може запускати більшу частину коду C, поки C не може запустити C ++ код. |
Диск | Функціонально-мова | Об'єктно-мовна мова |
Фокус | Зосереджується на методі або процесі, а не на даних. | Зосереджується на даних, а не на методі чи процедурах. |
Будівельні блоки | Функції | Об'єкти |
Ключові слова | Містить 32 ключові слова | Містить 52 ключові слова |
Концепції OOPS | Оскільки мова "C" є мовою, орієнтованою на процедури, вона не підтримує такі концепції OOPS, як клас, об'єкт, спадкування, поліморфізм, приховування даних і т.д. | Як об'єктно-орієнтована мова, C ++ підтримує клас, об'єкт, приховування даних, поліморфізм, успадкування, абстракцію тощо. |
Функції |
|
|
Функції пам'яті | Використовує функції calloc (), malloc () і free () для розподілу та вилучення пам'яті. | Використовує оператори new та delete для тієї ж мети. |
Інкапсуляція | Не підтримує. Дані та функції є окремими та вільними об'єктами. | Підтримує інкапсуляцію. Дані та функції інкапсульовані разом у вигляді об'єкта. Клас об'єктів надає план структури об'єкта. |
Приховування інформації | C не підтримує приховування інформації. Тут дані є вільними об'єктами і можуть маніпулюватися зовнішнім кодом. | Інкапсуляція приховує дані, щоб гарантувати, що структури даних і оператори використовуються за призначенням. |
Дані | Підтримує вбудовані та примітивні типи даних. Дані не захищені внаслідок не-об'єктної орієнтації | Підтримуються як вбудовані, так і користувацькі типи даних. Дані захищені (приховані) у C ++ |
Рівень | Мова низького рівня | Мова середнього рівня |
Введення-виведення | Мова 'C' використовує scanf () і printf () для введення і виведення. | Мова "C ++" використовує оператори cin >> і cout << для введення і виведення. |
Декларація змінних | C вимагає оголошення всіх змінних у верхній частині програми. | У C ++ змінні можуть бути оголошені в будь-якому місці програми перед використанням. |
Кілька декларацій | Допускається багатократна декларація глобальних змінних. | Не допускається багатократна декларація глобальних змінних. |
Зіставлення | Картування між даними та функціями є складним і складним. | Відображення між даними та функцією можна використовувати за допомогою "Об'єктів" |
Програмування графічного інтерфейсу | C підтримує інструмент GTK для програмування графічного інтерфейсу | C ++ підтримує інструменти Qt для програмування графічного інтерфейсу |
Успадкування | Успадкування в C неможливе | Успадкування можливе в C ++ |
Розширення файлу | Має розширення .c | Має розширення .cpp |
Файл заголовок за умовчанням | Файл заголовка за замовчуванням, що використовується на мові C, є stdio.h | Файл заголовка за замовчуванням, що використовується в C ++, є iosteam.h |
Деякі приклади різниці між C і C ++:
Приклади | C | C ++ |
Декларація змінних | Лише вгорі: int i; для (i = 10; i <10; i ++) | У будь-якому місці програми: для (int i = 10; i <10; i ++) |
Виділення пам'яті | Malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Нове: int * x = new int; int * x_array = new int [10]; |
Видалення пам'яті | Безкоштовно: вільний (x); безкоштовно (x_array); | Видалити: delete x; delete [] x_array; |