Різниця між C і C ++ з прикладами | Мови програмування

Ключова різниця: C та C ++ - це два різних мови комп'ютерного програмування. C ++ був розроблений з мови програмування С; однак вони мають різний характер. Найбільш очевидною відмінністю є те, що C - це мова, орієнтована на процедури, тоді як C ++ підтримує як процедурне, так і об'єктно-орієнтоване програмування, тому його часто називають гібридною.

C і C ++ є двома різними мовами комп'ютерного програмування. C був спочатку розроблений Деннісом Рітчі в лабораторіях AT&T Bell між 1969 і 1973 роками. C ++ - інша мова програмування загального призначення. Він був розроблений з оригінальної мови програмування C. Він був розроблений Бьорном Страуструпом у Bell Labs, починаючи з 1979 року. C ++ спочатку називався C з Classes, оскільки він був заснований на C. Він був перейменований в C ++ у 1983 році.

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 ++ підтримує всі ці функції.

Крім того, C не підтримує функцію NAMESPACE, тоді як 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 ++ підтримує клас, об'єкт, приховування даних, поліморфізм, успадкування, абстракцію тощо.

Функції

  • Не підтримує перевантаження функцій та операторів.
  • Не можна використовувати функції всередині структур
  • Не підтримує віртуальні функції та посилання змінні
  • Не підтримує обробку винятків
  • не підтримує змінні посилання
  • не має функції простору імен
  • можна викликати функцію main () через інші функції
  • Підтримує функцію і перевантаження оператора.
  • Може використовувати функції всередині структур
  • Підтримує віртуальні функції і змінні посилання.
  • Підтримує обробку винятків за допомогою блоку try і catch. Винятки використовуються для "жорстких" помилок, які роблять код неправильним.
  • підтримує змінні посилання
  • використовує функцію NAMESPACE, яка дозволяє уникнути колізій імен.
  • не можна викликати функцію main () через інші функції.

Функції пам'яті

Використовує функції 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;

Рекомендуємо

Схожі Статті

  • різниця між: Різниця між MKV і MP4

    Різниця між MKV і MP4

    Ключова різниця: Обидва, MKV і MP4 - це файлові формати, які в основному використовуються для відтворення відео з аудіо. MKV і MP4 не є форматами кодування, але є контейнерними файлами, тобто в основному обгортками для форматованих відеофайлів. Основна відмінність між ними полягає не в самих форматах, а в типах кодеків, що використовуються в файлах. І MKV, і MP4 - це файлові формати, які використовуються в основному для відтвор
  • різниця між: Різниця між гітарою і ситаром

    Різниця між гітарою і ситаром

    Ключові відмінності: І гітара, і ситар - це типи струнних інструментів. Однак існує багато відмінностей між ними, як-от форма інструментів, кількість рядків на кожному, спосіб їх відтворення і т.д. Якщо знати що-небудь про гітарі або ситарі, то їм дуже важко змішувати їх. Проте, для тих, хто не знайомий з будь-яким з них, може виявитися незрозумілим
  • різниця між: Різниця між податковим кредитом і податковим відрахуванням

    Різниця між податковим кредитом і податковим відрахуванням

    Ключова різниця: податковий кредит - це сума, яка вираховується з суми податку, що сплачується особою, тоді як податкове вирахування - це сума, яка вираховується з загального доходу особи; оскільки загальний дохід зменшується, так само податковий відраховується. Податки є важливою і заплутаною частиною дорослого життя. Ви не тільки повинні віддати частину своїх зароблених грошей уряду, але те, що робить процес гіршим, це те, що це не просто. Одного разу ви пристосуєтеся до
  • різниця між: Різниця між LG Optimus G Pro і HTC One

    Різниця між LG Optimus G Pro і HTC One

    Основна відмінність: LG Optimus G Pro має серйозні оновлення для свого попередника - LG Optimus G. Пристрій оснащений потужним 5, 5-дюймовим сенсорним екраном True Full IPS з можливістю мультитач та щільністю пікселів 401 ppi. Під капотом, телефон живиться від 1, 7 ГГц чотирьохядерним Snapdragon 600, що робить його досить швидким і швидким. Очікувалося, що HTC запусти
  • різниця між: Різниця між Ріші і Муні

    Різниця між Ріші і Муні

    Ключова різниця: Муні - це людина, яка робить інтроспекцію або хто задумливий. В основному, муні дещо нагадує філософа, який думає про те, як і чому такі речі є. Ріші - це людина, яка зазвичай вважається на вищому рівні навчання і розуміння завдяки сотням років тапас або медитації. Веди вважаються джерелами великих знань. Фактично, слово "veda" фактично означає "знання, мудрість" на санскриті, і походить від кореня vid-, що перекладається як "знати". Веди - це велика коле
  • різниця між: Різниця між Sony Xperia SP і HTC One

    Різниця між Sony Xperia SP і HTC One

    Ключова різниця: Xperia SP - це 4.6-дюймовий TFT-ємнісний сенсорний телефон, який був поміщений в повністю алюмінієвий корпус. Він має товщину менше 10 мм і важить приблизно 155 грамів. Екран пропонує HD-дисплей реальності і підтримується Mobile BRAVIA Engine 2. SP працює на 2G, 3G і LTE мережі (залежно від доступн
  • різниця між: Різниця між вулицями і дорогами

    Різниця між вулицями і дорогами

    Ключова відмінність: Дорога - це відкритий прокладений шлях для транспортних засобів, людей і тварин, який з'єднує між собою дві віддалені точки. Вулиці, як правило, невеликі дороги загального користування, які розташовані в містах і містах. Найчастіше вулиці викладені будинками або будівлями, а також дозволяють подорожувати як для пішоходів, так і для автомобілів. Хоча дороги з'єднують міста і міста один з одним і імітують трансп
  • різниця між: Різниця між LG Optimus G і LG Optimus F5

    Різниця між LG Optimus G і LG Optimus F5

    Основна відмінність: LG Optimus G має 4, 7-дюймовий екран і працює на Android 4.0 (Ice Cream Sandwich). З точки зору апаратного забезпечення, він має Qualcomm Snapdragon S4 Pro APQ8064, 1, 5 ГГц чотирьохядерний Qualcomm Krait з 2 Гб оперативної пам'яті. LG Optimus F5 оснащений 4, 3-дюймовим екраном і буде працювати на Android v4.1.2 (Jelly Bean). Він побудований з двоя
  • різниця між: Різниця між овсом і пшеницею

    Різниця між овсом і пшеницею

    Ключова відмінність: Овес став популярним зерном сніданку завдяки своїм багатьма корисними властивостями. З переходом до здорового способу життя, майже кожен з них або чув про овес, або включив в свій раціон овес. Avena sativa або овес - вид зернових культур, що вирощується для його насіння, також відомого з такою ж назвою. Пшениця, що належить до роду Triticum, під королівством Plantae

Вибір Редакції

Різниця між нудьгою і одноманітністю

Ключова відмінність: нудьга і монотонність застосовують незацікавленість роботи. Нудьга - це суб'єктивний стан, коли людина не зацікавлена ​​через регулярне розкриття або лікування. З іншого боку, одноманітність - це стан, коли людині набридає робити повторювану роботу або діяльність. Нудьга і монотонність часто перетинаються. Люди за