15

м. Київ, вул. О. Туманяна, 15 (м. Лівобережна)

Основні відмінності мов С і С ++ | itschool.kiev.ua

Основні відмінності мов С і С ++ | itschool.kiev.ua

17 02
C — це імперативна мова структурованого програмування високого рівня. Вона є прототипом мови C++. Про те, чим вони відрізняються, ми розповімо в цій статті.

 


Історія мови С


До відкриття C люди використовували ПО мову B, розроблену Кеном Томпсоном і Денисом Річі в Bell Labs у 1969 році. Мову C створив в 1972 році Денніс Річі. На ній було успішно реалізовано ядро операційної системи Unix у 1973 році. Вона стала дуже популярною після 1980 року. Її почали застосовувати для розробки ОС і різних додатків.

 


Основні елементи мови C


У мові C є лінійні і блокові коментарі. Коментарі блоку з'являються між послідовністю символів «/ *» і «* /». Рядковий або лінійний коментар починається з послідовності «//» і закінчується розривом рядка.
Базові типи: bool, char, usigned char, signed char і int.
У C байт не може бути менше 8 біт. Це найменший обсяг даних, який можна адресувати.

 


Характеристики мови C++


Це парадигмальна мова, яка означає, що одночасно можна використовувати кілька різних типів ПО. C++ створив в 1979 році Бьярн Страуструп як об'єктно-орієнтоване розширення мови C. Він використовується для створення програмного забезпечення та комп'ютерних ігор. На цій мові найчастіше пишуться програми для Windows і Linux. Можливість передавати вихідний код між платформами створює безліч можливостей для розробників.
Відповідно до даних дослідження IТ-співтовариства 2020 року, для 51% розробників вбудованих систем це основна мова програмування, а 25% професійних розробників починали з цієї мови. Він залишається неперевершеним, коли мова йде про високобюджетних комп'ютерних іграх, вбудованому ПЗ, системному програмуванні. Amazon був заснований на мові C ++, а також на операційних системах Windows.
Доступні типи програмного забезпечення C ++:
  • процедурне,
  • об'єктно-орієнтоване,
  • універсальне.

 


Відмінності між С і С++


C++ спочатку розроблявся як «C із класами». Страуструп додав до нього більше елементів і поліпшень. Нові можливості мови C++ у порівнянні з мовою ANSI C 1989 року включені в стандарт мови C із 1999 року (так званий C99). У C ++ з'явилася об'єктивність, яка є теоретичною для C.
Об'єктно-орієнтоване програмування:
  • класи як розширення структури з функціями компонентів, инкапсуляцією, спадкуванням та поліморфізмом;
  • об'єкти, які є екземплярами класів;
  • успадкування (включаючи множинне);
  • віртуальні методи (функції компонентів);
  • конструктори (додана можливість заборонити неявне перетворення конструктором із використанням явного);
  • деструктори — функції, що викликаються неявно перед (строго визначеним) видаленням об'єкта;
  • оператори new і delete;
  • перевірка динамічного типу (RTTI) під час виконання — перетворення між пов'язаними типами класів і визначення типу під час виконання (оператори dynamic_cast і typeid);
  • ключове слово this (доступ до об'єкта, для якого викликається метод);
  • покажчики на компоненти (поля і методи);
  • статичні методи й поля.
Механізми інкапсуляції:
  • функції-члени;
  • приватні, захищені й публічні розділи;
  • дружні функції і класи.
Загальні засоби програмування:
  • шаблони класів і функцій;
  • включення стандартної універсальної бібліотеки STL в стандартну бібліотеку.
Обробка винятків:
  • оголошення перехоплення виключення;
  • оголошення для виклику виключення: throw;
  • оголошення обмежують винятків: throw (...) (визначення того, які виключення можуть бути передані з даної функції/методу).
Загальні зміни:
  • оператор просторів імен і області дії;
  • визначення змінних і об'єктів як звичайних операторів;
  • динамічна ініціалізація глобальних змінних і локальних статичних змінних;
  • можливість доступу до перевизначення глобальної змінної за допомогою оператора;
  • ключові слова const, volatile (також C99) і змінювані (видалення модифікатора const із зазначеного поля, якщо такий було встановлено для всього об'єкта);
  • вбудовані функції і оператори перезавантаження;
  • новий логічний тип bool і константи true і false.

 


Важливі версії C++


  • C++ 11— випуск через 8 років після попередньої версії. Він представив лямбда-вирази, поліпшення в реалізації розумних покажчиків, можливість автоматичного присвоєння типу або заміни NULLна nullptr. Було дійсно багато змін, у тому числі і в стандартній бібліотеці, де, серед іншого, були нові структури даних (наприклад, кортежі), клас std :: threadдля спрощення обробки потоків, шаблон функції std::async, що дозволяє асинхронні виклики.
  • C++ 14— розширена можливість виведення типів за рахунок використання цієї мовної функції в лямбда-виразах або типах, що повертаються.
  • C++ 17— подальше розширення виведення типів, що додає можливість використання if і lambd в конструкції constexpr (тобто тієї, значення якої вказується під час компіляції). У стандартній бібліотеці, наприклад std::optional, є шаблон класу, який містить необов'язкове значення, std::filesystem, тобто уніфікований спосіб роботи з файловою системою.

 


Вивчення С++: із чого почати


Навчання програмуванню найчастіше починається із вивчення C/C ++ з нуля, а потім переходить до Java і C #. Це не навчання по пам'яті. Важливе вміння шукати знання, вивчати документацію і намагатися вирішувати проблеми самостійно. Саме розуміти, а не повторювати заяложені фрази.
Поширена помилка — вчитися тільки по російськомовних сайтах і матеріалах. Обмежуватися тільки книгами точно не варто. Друковані матеріали швидко втрачають актуальність. Найсвіжіші знання дають курси С ++ онлайнвід викладачів практиків Main School, на форумах у колег і знайти в англомовному інтернеті. Чим раніше ви звикнете до цієї мови, тим краще. Без англійської неможливо рухатися далі.
 
Незважаючи на обмеження друкованих джерел, не слід повністю відмовлятися від них, оскільки вони є гарною опорою. 
  • C ++ Primer Plus— дуже добре написаний підручник Стівена Прата по C ++ 11);
  • «Ефективний сучасний C ++» — хороша підтримка у вивченні новітніх стандартів мов програмування (C ++ 11 і C ++ 14);
  • C ++ Primer— п'яте видання книги Стенлі Липпмана, яку також часто рекомендують розробники, щоб почати вивчати Сі плюс плюс онлайн;
  • Алгоритмы без секретов— вивчаючи програмування, варто зануритися у світ алгоритмів;
  • «Чистий код» Роберта С. Мартіна — книга, яка розповідає про те, як писати чистий код з хорошою структурою і які хороші звички варто засвоїти із самого початку вивчення програмування.
 
Гарний програміст ніколи не перестає вчитися. Якщо ви збираєтеся серйозно ставитися до програмування і пов'язати з цим заняттям своє життя, звикайте до постійного розвитку своїх навичок. Сподіваємося, що наведені вище матеріали та рекомендації стануть у нагоді вам у цьому.
 

Коментарі ()

    Написати коментар

    Зворотній зв’язок