Hlavním účelem programování v C++ je zavést do programovacího jazyka C koncept objektové orientace.
Objektově orientované programování je paradigma, které poskytuje mnoho pojmů jako např dědičnost, datová vazba, polymorfismus atd.
Programovací paradigma, kde je vše reprezentováno jako objekt, je známé jako skutečně objektově orientovaný programovací jazyk. Pokec je považován za první skutečně objektově orientovaný programovací jazyk.
OOPs (Objektově orientovaný programovací systém)
Objekt znamená skutečnou slovní entitu, jako je pero, židle, stůl atd. Objektově orientované programování je metodologie nebo paradigma pro návrh programu pomocí tříd a objektů. Zjednodušuje vývoj a údržbu softwaru tím, že poskytuje některé koncepty:
"jaký je rozdíl mezi lvem a tygrem"
- Objekt
- Třída
- Dědictví
- Polymorfismus
- Abstrakce
- Zapouzdření
Objekt
Každá entita, která má stav a chování, je známá jako objekt. Například: židle, pero, stůl, klávesnice, kolo atd. Může to být fyzické a logické.
Třída
Sbírka předmětů se nazývá třída. Je to logická entita.
Třída v C++ je základním prvkem, který vede k objektově orientovanému programování. Aby bylo možné přistupovat k datovým členům a členským funkcím uživatelem definovaného datového typu, musí být vytvořena instance třídy. Třída objektu funguje jako jeho plán. Vezměte si jako příklad třídu aut. I když mohou být pro různá auta používána různá jména a značky, všechny budou mít některé vlastnosti společné, jako jsou čtyři kola, rychlostní limit, dojezd atd. V tomto případě je třída vozu reprezentována kola, rychlostní omezení a počet najetých kilometrů.
Dědictví
Když jeden objekt získá všechny vlastnosti a chování nadřazeného objektu tedy známé jako dědictví. Poskytuje opětovnou použitelnost kódu. Používá se k dosažení polymorfismu za běhu.
- Podtřída – Podtřída nebo Odvozená třída odkazuje na třídu, která přijímá vlastnosti od jiné třídy.
- Super třída - Termín 'Základní třída' nebo 'Supertřída' odkazuje na třídu, od které podtřída zdědí své vlastnosti.
- Opětovná použitelnost – V důsledku toho, když si přejeme vytvořit novou třídu, ale existující třída již obsahuje část kódu, který potřebujeme, můžeme díky dědičnosti vygenerovat naši novou třídu ze staré třídy. To nám umožňuje využívat pole a metody již existující třídy.
Polymorfismus
Když jeden úkol se provádí různými způsoby tj. známý jako polymorfismus. Např.: přesvědčit zákazníka jinak, něco nakreslit např. tvar nebo obdélník atd.
Různé situace mohou způsobit, že se operace chová odlišně. Typ dat použitých při operaci určuje chování.
Abstrakce
Skrytí vnitřních detailů a zobrazení funkčnosti je známá jako abstrakce. Abstrakce dat je proces, při kterém jsou vnějšímu světu vystaveny pouze ty informace, které jsou nezbytně nutné a zároveň jsou skryty informace o implementaci nebo pozadí. Například: telefonní hovor, neznáme interní zpracování.
V C++ používáme abstraktní třídu a rozhraní k dosažení abstrakce.
Zapouzdření
Spojení (nebo zabalení) kódu a dat dohromady do jedné jednotky se nazývá zapouzdření. Například: kapsle, je zabalena s různými léky.
Zapouzdření je obvykle chápáno jako seskupení souvisejících částí informací a dat do jediné entity. Zapouzdření je proces spojování dat a funkcí, které s nimi pracují v objektově orientovaném programování. Podívejte se na praktickou ukázku zapouzdření: ve společnosti existují různé divize, včetně obchodní divize, finanční divize a účetní divize. Všechny finanční transakce jsou zpracovávány finančním sektorem, který také vede záznamy o všech finančních datech. V podobném duchu má prodejní sekce na starosti všechny úkoly související s prodejem a vede záznamy o každém prodeji. Nyní by mohl nastat scénář, kdy z nějakého důvodu finanční úředník požaduje veškeré informace o tržbách za konkrétní měsíc. Pod zastřešujícím pojmem „prodejní sekce“ jsou seskupeni všichni zaměstnanci, kteří mohou ovlivnit data prodejní sekce. Abstrakce nebo skrývání dat je dalším vedlejším účinkem zapouzdření. Stejným způsobem jako zapouzdření skrývá data. Ve výše uvedeném příkladu žádná jiná oblast nemá přístup k žádným datům z žádné ze sekcí, jako jsou prodej, finance nebo účty.
Dynamická vazba - V dynamické vazbě se za běhu rozhoduje o kódu, který bude spuštěn v reakci na volání funkce. Za tímto účelem C++ podporuje virtuální funkce.
nový řádek python
Výhoda OOP oproti procedurálně orientovanému programovacímu jazyku
- OOPs usnadňuje vývoj a údržbu tam, kde stejně jako v procedurálně orientovaném programovacím jazyce není snadné spravovat, pokud kód roste s rostoucí velikostí projektu.
- OOP poskytují skrytí dat, zatímco v procedurálně orientovaném programovacím jazyce lze ke globálním datům přistupovat odkudkoli.
- OOP poskytují schopnost simulovat události v reálném světě mnohem efektivněji. Můžeme poskytnout řešení skutečného slovního problému, pokud používáme objektově orientovaný programovací jazyk.
Proč potřebujeme oops v C++?
Rané metody programování měly různé nevýhody a také slabý výkon. Tento přístup nemohl účinně řešit problémy v reálném světě, protože podobně jako u procedurálně orientovaného programování jste nemohli znovu použít kód v programu, byly potíže s globálním přístupem k datům a tak dále.
Objektově orientované programování pomocí tříd a objektů zjednodušuje údržbu kódu. Protože dědičnost umožňuje opětovné použití kódu, je program jednodušší, protože nemusíte opakovaně psát stejný kód. Skrytí dat také umožňují myšlenky jako zapouzdření a abstrakce.
Proč je C++ částečný oop?
Objektově orientované vlastnosti jazyka C byly primární motivací pro konstrukci jazyka C++.
Programovací jazyk C++ je kategorizován jako částečný objektově orientovaný programovací jazyk navzdory skutečnosti, že podporuje koncepty OOP, včetně tříd, objektů, dědičnosti, zapouzdření, abstrakce a polymorfismu.
1) Hlavní funkce musí být v C++ vždy mimo třídu a je vyžadována. To znamená, že se můžeme obejít bez tříd a objektů a mít v aplikaci jedinou hlavní funkci.
V tomto případě je vyjádřen jako objekt, což je poprvé, kdy byl porušen Pure OOP.
2) Globální proměnné jsou rysem programovacího jazyka C++, ke kterým může přistupovat jakýkoli jiný objekt v rámci programu a jsou definovány mimo něj. Zapouzdření je zde porušeno. I když C++ podporuje zapouzdření pro třídy a objekty, ignoruje je pro globální proměnné.
Přetížení
Polymorfismus má také podmnožinu známou jako přetěžování. Stávající operátor nebo funkce jsou přetíženy, když jsou nuceny pracovat s novým datovým typem.
hashtable versus hashmap
Závěr
Po přečtení tohoto kurzu o konceptech OOPS v C++ získáte porozumění potřebě objektově orientovaného programování, co jsou C++ OOP a základy OOP, jako je polymorfismus, dědičnost, zapouzdření atd. Spolu s případy polymorfismu a dědičnosti jste se také dozvěděli o výhodách OOP v C++.