Різниця між 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;

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

Схожі Статті

  • різниця між: Різниця між мікрохвильовою піччю та тостером

    Різниця між мікрохвильовою піччю та тостером

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

    Різниця між NiCad, NiMH і літієвою батареєю

    Ключова різниця: NiCad означає нікель-кадмій, тоді як NiMH - нікель-гідрид. Обидва використовують гідроксид оксиду нікелю (NiOOH) як свій позитивний електрод. Є багато різних типів батарей, які використовують літій в якості позитивного електрода, найбільш поширеними типами літієвих батарей є літій-іонні і літій-полімерні батареї. Літій-іонні батареї найбільш популярні серед трьох. NiCad, NiMH і літієві батареї є трьома найбільш часто використовуваними батареями сьогодні. Вони використовуються у всьому, від звичайних олівців AA або AAA до таких пристроїв, як ноутбуки, камери, телефони т
  • різниця між: Різниця між культурним обміном і культурним привласненням

    Різниця між культурним обміном і культурним привласненням

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

    Різниця між висновком і прогнозом

    Ключова різниця: Висновок в цілому може бути визначений як висновок, заснований на спостереженнях з використанням п'яти почуттів. З іншого боку, передбачення - це припущення, яке можна зробити без будь-яких доказів. Можна здогадатися, що зроблено на тому, що відчуває себе провісник. Читання розуміння стало основним предметом у кожній школі. Для того, щоб зрозуміти, що читає людина, важлив
  • різниця між: Різниця між стажуванням і стажуванням

    Різниця між стажуванням і стажуванням

    Основні відмінності: Найбільш поширеними відмінностями є те, що екстернази часто коротше, ніж стажування. Вони також не оплачуються, тоді як стажування часто немає. Студентам часто надаються можливості для стажування та стажування. Для деяких це може бути необов'язковою частиною їхньої навчально
  • різниця між: Різниця між Micromax A116 і XOLO X1000

    Різниця між Micromax A116 і XOLO X1000

    Основна відмінність: Micromax A116 Canvas HD є наступником дійсно популярного Micromax A110 Canvas 2 і є кращим, ніж його попередник. Він оснащений 5, 0-дюймовим дисплеєм з роздільною здатністю 720 x 1280 пікселів. Він працює на чотирьохядерних 1.2 GHz Cortex-A7 і 1 Гб оперативної пам'яті. XOLO x1000 - це смартфон на базі Intel, який п
  • різниця між: Різниця між Alcatel One Touch Idol Ultra і LG Optimus F5

    Різниця між Alcatel One Touch Idol Ultra і LG Optimus F5

    Основна відмінність: Alcatel One Touch Idol Ultra має 4, 65 дюймовий HD AMOLED сенсорний екран з роздільною здатністю 720 x 1280 пікселів. Телефон працює від двоядерного 1, 2 ГГц процесора на MediaTek MTK 6577 і 1 Гб оперативної пам'яті. Телефон має ширину 6, 45 мм, що привело компанію до проникнення її в якості найтоншого смартфона на ринку. LG Optimus F5 оснащений
  • різниця між: Різниця між Nokia Lumia 920 і LG Optimus G

    Різниця між Nokia Lumia 920 і LG Optimus G

    Основна відмінність: Одним з перших смартфонів під брендом є Nokia Lumia 920. Nokia Lumia 920 була одним з перших телефонів, розроблених під управлінням Windows Phone 8. Він був запущений у листопаді 2012 року як флагманський телефон. Популярною серією смартфонів від LG Electronics є LG Optimus. Деякі з нових телефонів під цим брендом включають LG Optimus G, LG Optimus L5, LG Optim
  • різниця між: Різниця між Samsung Galaxy Mega 5.8 і Samsung Galaxy Mega 6.3

    Різниця між Samsung Galaxy Mega 5.8 і Samsung Galaxy Mega 6.3

    Основна відмінність: Samsung розширила свої пропозиції в категорії phablet, представивши Samsung Galaxy Mega 5.8 і Samsung Galaxy Mega 6.3. Samsung Galaxy Mega 5.8 названий таким, оскільки він має 5, 8-дюймовий TFT сенсорний екран з роздільною здатністю 540 x 960 пікселів. Телефон працює від двоядерного процесора 1, 4 ГГц з оперативною пам'яттю 1, 5 ГБ. Samsung Galaxy Mega 6.3 називається такою через 6, 3-

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

Різниця між автентичними та оригінальними

Ключова різниця: автентичні та оригінальні прикметники часто вважаються однаковими у їхніх значеннях; але вони дещо відрізняються; тобто будь-яка автентична річ не є оригінальною і навпаки. Слово "автентичний" означає надійний або справжній, який може бути еквівалентний оригінальному, але не оригінальному. У той час як слово «оригінал»