logo

C++ ООП концепции

Основната цел на програмирането на C++ е да въведе концепцията за обектна ориентация в езика за програмиране C.

Обектно-ориентираното програмиране е парадигма, която предоставя много концепции като напр наследяване, обвързване на данни, полиморфизъм и др.

Програмната парадигма, при която всичко е представено като обект, е известна като истински обектно-ориентиран език за програмиране. Общи приказки се счита за първия наистина обектно-ориентиран език за програмиране.


OOP (обектно ориентирана система за програмиране)

Обект означава истинска словесна единица като писалка, стол, маса и т.н. Обектно-ориентирано програмиране е методология или парадигма за проектиране на програма, използваща класове и обекти. Той опростява разработката и поддръжката на софтуер, като предоставя някои концепции:

великденски яйца в android
Cpp Oops концепция 1
  • Обект
  • Клас
  • Наследство
  • Полиморфизъм
  • Абстракция
  • Капсулиране

Обект

Всеки обект, който има състояние и поведение, е известен като обект. Например: стол, химикал, маса, клавиатура, велосипед и т.н. Може да бъде физически и логически.

Клас

Колекция от предмети се нарича клас. Това е логическа единица.

Класът в C++ е основният елемент, който води до обектно-ориентираното програмиране. Трябва да се създаде екземпляр на клас, за да се осъществи достъп и да се използват членовете на данните и членските функции на дефинирания от потребителя тип данни. Класът на обект действа като негов план. Да вземем за пример класа автомобили. Дори ако различни имена и марки могат да се използват за различни автомобили, всички те ще имат някои общи характеристики, като четири колела, ограничение на скоростта, пробег от мили и т.н. В този случай класът на автомобила е представен от колелата, ограниченията на скоростта и пробега.

Наследство

Когато един обект придобие всички свойства и поведение на родителския обект т.е. известно като наследство. Осигурява повторно използване на кода. Използва се за постигане на полиморфизъм по време на изпълнение.

  1. Подклас - Подклас или производен клас се отнася до клас, който получава свойства от друг клас.
  2. Супер клас – Терминът „базов клас“ или „супер клас“ се отнася до класа, от който подкласът наследява своите свойства.
  3. Повторна употреба - В резултат на това, когато искаме да създадем нов клас, но съществуващ клас вече съдържа част от кода, от който се нуждаем, можем да генерираме нашия нов клас от стария клас благодарение на наследяването. Това ни позволява да използваме полетата и методите на вече съществуващия клас.

Полиморфизъм

Кога една задача се изпълнява по различни начини т.е. известен като полиморфизъм. Например: да убедите клиента в различното, да нарисувате нещо напр. форма или правоъгълник и др.

задайте java

Различните ситуации могат да доведат до различно поведение на дадена операция. Типът данни, използвани в операцията, определя поведението.

Абстракция

Скриване на вътрешни детайли и показване на функционалност е известно като абстракция. Абстракцията на данни е процесът на излагане на външния свят само на информацията, която е абсолютно необходима, като същевременно се прикрива информация за изпълнение или основна информация. Например: телефонно обаждане, ние не знаем вътрешната обработка.

В C++ използваме абстрактен клас и интерфейс, за да постигнем абстракция.

Капсулиране

Свързването (или обвиването) на код и данни заедно в една единица е известно като капсулиране. Например: капсула, обвита е с различни лекарства.

Капсулирането обикновено се разбира като групиране на свързани части от информация и данни в едно цяло. Капсулирането е процесът на обвързване на данни и функциите, които работят с тях в обектно-ориентираното програмиране. Разгледайте практическа илюстрация на капсулирането: в една компания има различни отдели, включително отдел продажби, отдел финанси и отдел счетоводство. Всички финансови транзакции се обработват от финансовия сектор, който също поддържа записи на всички финансови данни. По подобен начин отделът за продажби отговаря за всички задачи, свързани с продажбите, и поддържа запис на всяка продажба. Сега може да възникне сценарий, когато по някаква причина финансов служител изисква цялата информация за продажбите за определен месец. Под общия термин „секция продажби“ всички служители, които могат да повлияят на данните на секцията продажби, са групирани заедно. Извличането или прикриването на данни е друг страничен ефект от капсулирането. По същия начин, по който капсулирането скрива данните. В гореспоменатия пример никоя друга област няма достъп до нито една от данните от нито един от разделите, като например продажби, финанси или сметки.

Динамично обвързване - При динамичното обвързване се взема решение по време на изпълнение относно кода, който ще бъде изпълнен в отговор на извикване на функция. За тази цел C++ поддържа виртуални функции.

Предимство на ООП пред процедурно-ориентирания език за програмиране

  1. OOP улесняват разработката и поддръжката, където, както в процедурно-ориентирания език за програмиране, не е лесно да се управлява, ако кодът расте с нарастването на размера на проекта.
  2. OOP осигуряват скриване на данни, докато в процедурно-ориентирания език за програмиране глобалните данни могат да бъдат достъпни отвсякъде.
  3. OOP предоставят възможност за симулиране на събития от реалния свят много по-ефективно. Можем да предоставим решението на реална текстова задача, ако използваме езика за обектно-ориентирано програмиране.

Защо се нуждаем от oops в C++?

Имаше различни недостатъци на ранните методи на програмиране, както и лоша производителност. Подходът не може да се справи ефективно с проблеми от реалния свят, тъй като, подобно на процедурно-ориентираното програмиране, не можете да използвате повторно кода в програмата отново, имаше затруднения с глобалния достъп до данни и т.н.

С използването на класове и обекти, обектно-ориентираното програмиране прави поддръжката на код проста. Тъй като наследяването позволява повторно използване на кода, програмата е по-опростена, защото не е необходимо да пишете един и същ код многократно. Скриването на данни също се осигурява от идеи като капсулиране и абстракция.

java примерни програми

Защо C++ е частично oop?

Обектно-ориентираните характеристики на езика C бяха основната мотивация зад изграждането на езика C++.

Езикът за програмиране C++ е категоризиран като частично обектно-ориентиран език за програмиране въпреки факта, че поддържа OOP концепции, включително класове, обекти, наследяване, капсулиране, абстракция и полиморфизъм.

1) Основната функция винаги трябва да е извън класа в C++ и е задължителна. Това означава, че можем да се справим без класове и обекти и да имаме една основна функция в приложението.

В този случай се изразява като обект, което е първият път, когато Pure OOP е нарушен.

2) Глобалните променливи са функция на езика за програмиране C++, която може да бъде достъпна от всеки друг обект в програмата и се дефинират извън нея. Тук капсулирането е нарушено. Въпреки че C++ насърчава капсулирането за класове и обекти, той го игнорира за глобалните променливи.

Претоварване

Полиморфизмът също има подгрупа, известна като претоварване. Казва се, че съществуващ оператор или функция е претоварена, когато е принудена да работи с нов тип данни.

Заключение

Ще придобиете разбиране за необходимостта от обектно-ориентирано програмиране, какво представляват ООП на C++ и основите на ООП, като полиморфизъм, наследяване, капсулиране и т.н., след като прочетете този курс за OOPS концепции в C++. Наред със случаите на полиморфизъм и наследяване, научихте и за предимствата на C++ OOP.