logo

C++ koncepty OOP

Hlavným účelom programovania v C++ je zaviesť do programovacieho jazyka C koncept objektovej orientácie.

Objektovo orientované programovanie je paradigma, ktorá poskytuje mnoho konceptov ako napr dedičnosť, dátová väzba, polymorfizmus atď.

Programovacia paradigma, kde je všetko reprezentované ako objekt, je známa ako skutočne objektovo orientovaný programovací jazyk. Spoločenská konverzácia je považovaný za prvý skutočne objektovo orientovaný programovací jazyk.


OOPs (Object Oriented Programming System)

Objekt znamená skutočnú slovnú entitu, ako je pero, stolička, stôl atď. Objektovo orientované programovanie je metodológia alebo paradigma na navrhovanie programu pomocou tried a objektov. Zjednodušuje vývoj a údržbu softvéru tým, že poskytuje niektoré koncepty:

algoritmus pre bfs
Cpp Oops koncept 1
  • Objekt
  • Trieda
  • Dedičnosť
  • Polymorfizmus
  • Abstrakcia
  • Zapuzdrenie

Objekt

Každá entita, ktorá má stav a správanie, je známa ako objekt. Napríklad: stolička, pero, stôl, klávesnica, bicykel atď. Môže to byť fyzické a logické.

Trieda

Zbierka predmetov sa nazýva trieda. Je to logická entita.

Trieda v C++ je základným prvkom, ktorý vedie k objektovo orientovanému programovaniu. Inštancia triedy musí byť vytvorená, aby bolo možné pristupovať a používať dátové členy a členské funkcie užívateľom definovaného typu údajov. Trieda objektu funguje ako jeho plán. Ako príklad si vezmite triedu áut. Aj keď sa pre rôzne autá môžu používať rôzne názvy a značky, všetky budú mať niektoré spoločné charakteristiky, ako napríklad štyri kolesá, rýchlostný limit, dojazd atď. V tomto prípade triedu auta predstavuje kolesá, rýchlostné obmedzenia a počet najazdených kilometrov.

Dedičnosť

Keď jeden objekt získa všetky vlastnosti a správanie rodičovského objektu teda známy ako dedičstvo. Poskytuje opätovnú použiteľnosť kódu. Používa sa na dosiahnutie polymorfizmu za behu.

  1. Podtrieda – Podtrieda alebo odvodená trieda odkazuje na triedu, ktorá prijíma vlastnosti z inej triedy.
  2. Super trieda - Termín 'Základná trieda' alebo 'Supertrieda' sa vzťahuje na triedu, od ktorej podtrieda zdedí svoje vlastnosti.
  3. Opätovná použiteľnosť – Výsledkom je, že keď chceme vytvoriť novú triedu, ale existujúca trieda už obsahuje časť kódu, ktorý potrebujeme, môžeme vďaka dedeniu vygenerovať našu novú triedu zo starej triedy. To nám umožňuje využívať polia a metódy už existujúcej triedy.

Polymorfizmus

Kedy jedna úloha sa vykonáva rôznymi spôsobmi známe ako polymorfizmus. Napríklad: presvedčiť zákazníka inak, nakresliť niečo napr. tvar alebo obdĺžnik atď.

Rôzne situácie môžu spôsobiť, že sa operácia bude správať odlišne. Typ údajov použitých pri operácii určuje správanie.

Abstrakcia

Skrytie vnútorných detailov a zobrazenie funkčnosti je známy ako abstrakcia. Abstrakcia údajov je proces, pri ktorom sa vonkajšiemu svetu odhaľujú iba tie informácie, ktoré sú absolútne nevyhnutné, pričom sa zatajujú informácie o implementácii alebo pozadí. Napríklad: telefonát, nepoznáme interné spracovanie.

V C++ používame abstraktnú triedu a rozhranie na dosiahnutie abstrakcie.

Zapuzdrenie

Spojenie (alebo zabalenie) kódu a údajov do jednej jednotky je známe ako zapuzdrenie. Napríklad: kapsula, je obalená rôznymi liekmi.

nedefinovaný sklon

Zapuzdrenie sa zvyčajne chápe ako zoskupenie súvisiacich informácií a údajov do jednej entity. Zapuzdrenie je proces spájania údajov a funkcií, ktoré s nimi pracujú v objektovo orientovanom programovaní. Pozrite sa na praktickú ilustráciu zapuzdrenia: v spoločnosti existujú rôzne divízie vrátane obchodnej divízie, finančnej divízie a účtovnej divízie. Všetky finančné transakcie rieši finančný sektor, ktorý tiež vedie záznamy o všetkých finančných údajoch. V podobnom duchu má oddelenie predaja na starosti všetky úlohy súvisiace s predajom a vedie záznamy o každom predaji. Teraz môže nastať scenár, keď z nejakého dôvodu bude finančný úradník vyžadovať všetky informácie o predaji za konkrétny mesiac. Pod zastrešujúcim pojmom „sekcia predaja“ sú zoskupení všetci zamestnanci, ktorí môžu ovplyvniť údaje sekcie predaja. Ďalším vedľajším účinkom zapuzdrenia je abstrakcia alebo skrytie údajov. Rovnakým spôsobom ako zapuzdrenie skryje údaje. Vo vyššie uvedenom príklade žiadna iná oblasť nemá prístup k žiadnym údajom zo žiadnej zo sekcií, ako sú predaj, financie alebo účty.

Dynamická väzba - V dynamickej väzbe sa za behu rozhoduje o kóde, ktorý sa spustí ako odpoveď na volanie funkcie. Na tento účel C++ podporuje virtuálne funkcie.

Výhoda OOP oproti procedurálne orientovanému programovaciemu jazyku

  1. OOPs uľahčuje vývoj a údržbu tam, kde ako v programovacom jazyku orientovanom na procedúry nie je ľahké spravovať, ak kód rastie s rastúcou veľkosťou projektu.
  2. OOP poskytujú skrytie údajov, zatiaľ čo v programovacom jazyku orientovanom na procedúry je možné pristupovať ku globálnym údajom odkiaľkoľvek.
  3. OOP poskytujú schopnosť simulovať udalosti v reálnom svete oveľa efektívnejšie. Môžeme poskytnúť riešenie skutočného slovného problému, ak používame objektovo orientovaný programovací jazyk.

Prečo potrebujeme oops v C++?

Skoré metódy programovania mali rôzne nevýhody, ako aj slabý výkon. Tento prístup nedokázal efektívne riešiť problémy v reálnom svete, pretože podobne ako pri procedurálne orientovanom programovaní ste nemohli znova použiť kód v programe, vyskytli sa problémy s globálnym prístupom k údajom atď.

Objektovo orientované programovanie pomocou tried a objektov zjednodušuje údržbu kódu. Keďže dedičnosť umožňuje opätovné použitie kódu, program je jednoduchší, pretože nemusíte opakovane písať rovnaký kód. Skrytie údajov poskytujú aj nápady ako zapuzdrenie a abstrakcia.

Prečo je C++ čiastočný oop?

Objektovo orientované vlastnosti jazyka C boli primárnou motiváciou pre konštrukciu jazyka C++.

Programovací jazyk C++ je kategorizovaný ako čiastočný objektovo orientovaný programovací jazyk napriek tomu, že podporuje koncepty OOP, vrátane tried, objektov, dedičnosti, zapuzdrenia, abstrakcie a polymorfizmu.

1) Hlavná funkcia musí byť v C++ vždy mimo triedy a je povinná. To znamená, že sa môžeme zaobísť bez tried a objektov a mať v aplikácii jedinú hlavnú funkciu.

V tomto prípade je vyjadrený ako objekt, čo je prvýkrát, čo bol porušený Pure OOP.

iterácia zoznamu v jazyku Java

2) Globálne premenné sú vlastnosťou programovacieho jazyka C++, ku ktorým môže pristupovať akýkoľvek iný objekt v rámci programu a sú definované mimo neho. Zapuzdrenie je tu porušené. Aj keď C++ podporuje zapuzdrenie tried a objektov, pri globálnych premenných ho ignoruje.

Preťaženie

Polymorfizmus má tiež podmnožinu známu ako preťaženie. Existujúci operátor alebo funkcia sa považuje za preťaženú, keď je nútená pracovať s novým typom údajov.

Záver

Po prečítaní tohto kurzu o konceptoch OOPS v C++ ste pochopili potrebu objektovo orientovaného programovania, čo sú C++ OOP a základy OOP, ako je polymorfizmus, dedičnosť, zapuzdrenie atď. Spolu s príkladmi polymorfizmu a dedičnosti ste sa dozvedeli aj o výhodách OOP v C++.