encapsulation c
Kompletní přehled zapouzdření v C ++:
V našem předchozím tutoriálu jsme podrobně diskutovali o Abstrakci. Abstrakce, jak víme, skryje implementační podrobnosti od uživatele a zpřístupní pouze rozhraní, které je vyžadováno uživatelem.
V tomto tutoriálu probereme ještě další důležitou vlastnost OOP, tj. Zapouzdření. Abstrakce a zapouzdření jdou ruku v ruce. Ve skutečnosti můžeme říci, že zapouzdřený kód nám pomáhá v abstrakci. Jinými slovy, zapouzdření a abstrakce jsou úzce spojeny.
=> Navštivte zde kompletní kurz C ++ od odborníků.
šířka prvního prohledávání stromu C ++
Můžeme tedy diskutovat o těchto dvou pojmech společně, protože mezi zapouzdřením a abstrakcí existuje velmi tenká hranice.
Co se naučíte:
- Co je zapouzdření?
- Implementace zapouzdření
- Rozdíl mezi zapouzdřením a abstrakcí
- Závěr
- Doporučené čtení
Co je zapouzdření?
Zapouzdření dat označuje proces spojování dat a funkcí nebo metod pracujících na těchto datech do jedné jednotky tak, aby byla chráněna před vnějším rušením a zneužitím.
Jedná se o důležitý objektově orientovaný programovací koncept a vede k dalšímu konceptu OOP známému jako „ Skrývání dat “. Zapouzdření skrývá data a jeho členy, zatímco abstrakce vystavuje vnějšímu světu pouze nezbytné podrobnosti nebo rozhraní.
Svým způsobem představuje abstrakce „abstraktní pohled“ na skrytá data vnějšímu světu. Proto jsme již učinili prohlášení, že zapouzdření a abstrakce jdou ruku v ruce.
Třída v C ++ je ta, kde spojujeme datové členy a funkce fungující na těchto datových členech spolu se specifikátory přístupu jako soukromé, veřejné a chráněné představují zapouzdření. Specifikátory přístupu jsme již probrali v našem dřívějším kurzu o třídách a objektech.
Víme také, že ve výchozím nastavení jsou členové třídy soukromí. Když deklarujeme členy třídy jako soukromé a metody přístupu k členům třídy jako veřejné, skutečně implementujeme zapouzdření. Zároveň poskytujeme abstraktní pohled na data vnějšímu světu ve formě veřejných metod.
jak otevřít soubor torrentu Windows 10
Implementace zapouzdření
Zapouzdření v C ++ je implementováno jako třída, která sdružuje data a funkce fungující na těchto datech společně. Většinou jsou data deklarována jako soukromá, takže nejsou přístupná mimo třídu. Metody nebo funkce jsou deklarovány jako veřejné a lze k nim přistupovat pomocí objektu třídy.
Nemůžeme však přímo přistupovat k soukromým členům a to se nazývá skrývání dat. Když je to hotové, data jsou zabezpečena a lze k nim přistupovat pouze pomocí funkcí dané konkrétní třídy, ve které jsou data deklarována.
// Example program #include #include using namespace std; //example class to demonstrate encapsulation class sampleData{ int num; char ch; public: //getter methods to read data values int getInt() const{ return num; } char getCh() const{ return ch; } //setter methods to set data values void setInt(int num) { this->num = num; } void setCh(char ch){ this->ch = ch; } }; int main() { sampleData s; s.setInt(100); s.setCh('Z'); cout<<'num = '< Výstup:
num = 100
ch = Z

Ve výše uvedeném programu jsme do třídy přidali dvě členské proměnné spolu s metodami getter a setter. a toto je příklad zapouzdření.
Deklarovali jsme dvě proměnné, tj. Num a ch, jako soukromé proměnné, aby nebyly přístupné vnějšímu světu. Jsou přístupné pouze funkcím, které jsme deklarovali jako veřejné. Proto máme ve třídě skryté datové členy jako soukromé proměnné.
Vezměme si další příklad, abychom lépe porozuměli zapouzdření v C ++.
#include #include using namespace std; //Accounts class: includes salary info for a particular employee class Accounts{ int empId; double salary, basic, allowances, deductions; public: Accounts(int empId):empId(empId){} //read salary info void readEmployeeInfo(int empId){ cout<<'Enter basic for the employee'< basic; cout<>allowances; cout<>deductions; } //calculate salary double calculateSalary(){ salary = basic+ allowances - deductions; return salary; } //display details void display(){ salary = calculateSalary(); cout<<'Employee: '< Výstup:
Zadejte základní pro zaměstnance1: 10 000
příspěvky: 4324,43
odpočty: 1000
Zaměstnanec: 1
Plat: 13324,4
otázky a odpovědi na technickou podporu

Toto je další příklad zapouzdření. Jak je uvedeno výše, máme účty třídy, které sdružují data účtu a všechny funkce, které s těmito daty pracují, do jedné třídy účtů. V hlavní funkci můžeme vytvořit objekt této třídy a získat přístup k funkcím, abychom získali požadované informace.
Nyní, pokud některé jiné třídy říkají, že údaje o zaměstnancích chtějí získat přístup k datům účtů, pak to nemůže udělat přímo. Bude muset vytvořit objekt třídy Účty a bude mít přístup pouze k těm položkám, které jsou veřejné. Tímto způsobem pomocí zapouzdření zaručujeme řízení přístupu k datům a také zajišťujeme integritu dat.
Rozdíl mezi zapouzdřením a abstrakcí
Abstrakce a zapouzdření jsou úzce spojeny. Zapouzdření pomáhá při abstrakci spojováním dat a metod, které na těchto datech pracují společně.
Zapouzdření Abstrakce Skryje data Skryje implementaci Sdružuje data a metody dohromady Poskytuje uživateli abstraktní rozhraní, které odhaluje pouze to, co je požadováno Pomůcky v abstrakci Pomáhá při opětovném použití a zabezpečení kódu. Implementováno jako třída se specifikátory přístupu definujícími přístup k datovým členům a metodám Implementováno jako abstraktní třída a rozhraní, která nelze vytvořit instanci.
Závěr
Zapouzdření je jednou z nejdůležitějších funkcí OOP, protože nám poskytuje způsob, jak skrýt data. To zase zvyšuje bezpečnost dat a chrání je před nebezpečným použitím.
Zapouzdření pomáhá v abstrakci, takže můžeme koncovému uživateli vystavit pouze požadované rozhraní a podle toho skrýt další podrobnosti. V tomto kurzu jsme se podívali na koncepty abstrakce a zapouzdření v C ++.
V našem nadcházejícím kurzu se budeme zabývat dědičností v C ++ s příklady.
=> Navštivte zde exkluzivní sérii výukových kurzů C ++.
Doporučené čtení
- Abstrakce dat v C ++
- Datové typy C ++
- Nejlepší ZDARMA C # výukové série: Ultimate C # průvodce pro začátečníky
- 70+ NEJLEPŠÍCH C ++ návodů, jak se naučit programování v C ++ ZDARMA
- Funkce knihovny v C ++
- Objektově orientované programování v C ++
- Úvod do datových struktur v C ++
- Seznamy inicializátoru v C ++