logo

Концепції ООП C++

Основною метою програмування на C++ є введення концепції об’єктної орієнтації в мову програмування C.

Об'єктно-орієнтоване програмування - це парадигма, яка містить багато концепцій, таких як успадкування, зв'язування даних, поліморфізм тощо.

Парадигма програмування, де все представлено як об’єкт, відома як дійсно об’єктно-орієнтована мова програмування. Невеличка розмова вважається першою дійсно об'єктно-орієнтованою мовою програмування.


ООП (система об'єктно-орієнтованого програмування)

Об'єкт означає реальну сутність слова, таку як ручка, стілець, стіл тощо. Об'єктно-орієнтоване програмування це методологія або парадигма для розробки програми з використанням класів і об'єктів. Він спрощує розробку та обслуговування програмного забезпечення, надаючи деякі концепції:

список java порожній
Cpp Oops концепція 1
  • Об'єкт
  • Клас
  • Спадщина
  • Поліморфізм
  • Абстракція
  • Інкапсуляція

Об'єкт

Будь-яка сутність, яка має стан і поведінку, називається об’єктом. Наприклад: стілець, ручка, стіл, клавіатура, велосипед тощо. Він може бути фізичним і логічним.

Клас

Колекція предметів називається класом. Це логічна сутність.

Клас у C++ є основоположним елементом, який веде до об’єктно-орієнтованого програмування. Необхідно створити екземпляр класу, щоб отримати доступ і використовувати елементи даних і функції-члени визначеного користувачем типу даних. Клас об'єкта діє як його план. Візьмемо для прикладу клас автомобілів. Навіть якщо різні назви та марки можуть використовуватися для різних автомобілів, усі вони матимуть деякі спільні характеристики, наприклад чотири колеса, обмеження швидкості, діапазон миль тощо. У цьому випадку клас автомобіля представлено колеса, обмеження швидкості та пробіг.

Спадщина

Коли один об’єкт набуває всіх властивостей і поведінки батьківського об’єкта тобто відомий як успадкування. Він забезпечує повторне використання коду. Він використовується для досягнення поліморфізму часу виконання.

  1. Підклас — підклас або похідний клас відноситься до класу, який отримує властивості від іншого класу.
  2. Суперклас. Термін «Базовий клас» або «Суперклас» відноситься до класу, від якого підклас успадковує свої властивості.
  3. Можливість повторного використання. У результаті, якщо ми хочемо створити новий клас, але існуючий клас уже містить частину необхідного коду, ми можемо створити наш новий клас зі старого класу завдяки успадкуванню. Це дозволяє нам використовувати поля та методи попереднього класу.

Поліморфізм

Коли одне завдання виконується різними способами тобто відомий як поліморфізм. Наприклад: переконати клієнта в іншому, намалювати щось напр. форма або прямокутник тощо.

оновлення від join sql

Різні ситуації можуть спричинити різну поведінку операції. Тип даних, що використовуються в операції, визначає поведінку.

Абстракція

Приховування внутрішніх деталей і показ функціональності відомий як абстракція. Абстракція даних — це процес надання зовнішньому світу лише тієї інформації, яка є абсолютно необхідною, приховуючи інформацію про впровадження або довідкову інформацію. Наприклад: телефонний дзвінок, ми не знаємо внутрішньої обробки.

У C++ ми використовуємо абстрактний клас та інтерфейс для досягнення абстракції.

Інкапсуляція

Зв’язування (або обгортання) коду та даних разом в єдиний блок відоме як інкапсуляція. Наприклад: капсула, в неї загорнуті різні ліки.

Інкапсуляція зазвичай розуміється як групування пов’язаних частин інформації та даних в єдину сутність. Інкапсуляція — це процес об’єднання даних і функцій, які з ними працюють в об’єктно-орієнтованому програмуванні. Подивіться на практичну ілюстрацію інкапсуляції: у компанії існують різні підрозділи, включаючи відділ продажів, відділ фінансів і відділ рахунків. Усі фінансові операції обробляє фінансовий сектор, який також веде записи всіх фінансових даних. Подібним чином відділ продажів відповідає за всі завдання, пов’язані з продажами, і веде облік кожного продажу. Тепер можливий сценарій, коли фінансовий чиновник з якихось причин вимагає всю інформацію про продажі за певний місяць. Під загальним терміном «розділ продажів» об’єднані всі співробітники, які можуть впливати на дані відділу продажів. Абстракція або приховування даних є ще одним побічним ефектом інкапсуляції. Так само, як інкапсуляція приховує дані. У наведеному вище прикладі будь-яка інша область не може отримати доступ до будь-яких даних із будь-якого розділу, наприклад продажів, фінансів або облікових записів.

Динамічне прив'язування - У динамічному зв’язуванні рішення щодо коду, який буде запущено у відповідь на виклик функції, приймається під час виконання. Для цього C++ підтримує віртуальні функції.

Перевага ООП над процедурно-орієнтованою мовою програмування

  1. ООП спрощує розробку та підтримку, оскільки, як у процедурно-орієнтованій мові програмування, нелегко керувати, якщо код зростає разом зі збільшенням розміру проекту.
  2. ООП забезпечують приховування даних, тоді як у процедурно-орієнтованій мові програмування доступ до глобальних даних можна отримати з будь-якого місця.
  3. ООП надають можливість симулювати події реального світу набагато ефективніше. Ми можемо забезпечити розв’язання реальної текстової задачі, якщо ми використовуємо мову об’єктно-орієнтованого програмування.

Навіщо нам Oops в C++?

У ранніх методів програмування були різні недоліки, а також низька продуктивність. Цей підхід не міг ефективно вирішувати проблеми реального світу, оскільки, подібно до процедурно-орієнтованого програмування, ви не могли повторно використовувати код у програмі, виникали труднощі з глобальним доступом до даних тощо.

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

Чому C++ є частковим oop?

Об’єктно-орієнтовані особливості мови C були основною мотивацією для створення мови C++.

Мова програмування C++ класифікується як частково об’єктно-орієнтована мова програмування, незважаючи на те, що вона підтримує концепції ООП, включаючи класи, об’єкти, успадкування, інкапсуляцію, абстракцію та поліморфізм.

мамта кулкарні актор

1) Функція main завжди має бути поза класом у C++ і є обов’язковою. Це означає, що ми можемо обходитися без класів і об’єктів і мати єдину основну функцію в додатку.

У цьому випадку він виражений як об’єкт, який є першим випадком порушення чистого ООП.

2) Глобальні змінні — це функція мови програмування C++, до якої може отримати доступ будь-який інший об’єкт у програмі та визначені поза нею. Інкапсуляція тут порушена. Незважаючи на те, що C++ заохочує інкапсуляцію для класів і об’єктів, він ігнорує її для глобальних змінних.

Перевантаження

Поліморфізм також має підмножину, відому як перевантаження. Існуючий оператор або функція вважається перевантаженою, коли вона змушена працювати з новим типом даних.

Висновок

Ви зрозумієте потребу в об’єктно-орієнтованому програмуванні, що таке ООП C++ і основи ООП, такі як поліморфізм, успадкування, інкапсуляція тощо, прочитавши цей курс про концепції OOPS у C++. Разом із випадками поліморфізму та успадкування ви також дізналися про переваги ООП C++.