Úvod do zapouzdření v C ++

Zapouzdření znamená proces zabalení dat a funkcí do jedné kapsle. Zabezpečuje také data z jiných tříd omezením přístupu. V podstatě data skrývá. Pokud vezmeme příklad vysoké školy v reálném světě, máme různá oddělení, jako je fyzika, chemie a biologie atd. Může nastat situace, kdy v, vedoucí oddělení fyziky potřebuje nějaké informace z oddělení biologie, nemůže přímý přístup k datům z tohoto oddělení. Nejprve by se měl obrátit na vedoucího oddělení biologie a poté požádat o poskytnutí údajů. Takto zapouzdření funguje.

Jak používat zapouzdření v C ++?

Abychom toho dosáhli, musíme postupovat podle následujících kroků:

  1. Nejprve musíme všechny datové členy učinit soukromými.
  2. Pak by měly být pro každý datový člen vytvořeny veřejné getterové a setterové funkce tak, aby funkce get získala hodnotu datového prvku a funkce set nastavuje hodnotu datového člena.

Zapouzdření a skrytí dat lze dosáhnout v C ++ pomocí uživatelem definovaných typů nazývaných Třídy. Specifikátory přístupu ve třídách mohou být soukromé, chráněné nebo veřejné. Ve výchozím nastavení jsou všechny položky ve třídě soukromé. Podle potřeby můžeme změnit úroveň přístupu. Níže jsou uvedeny tři úrovně specifikátorů přístupu:

  • Soukromé : K datům mají přístup členové stejné třídy.
  • Veřejné : Všechny třídy mají přístup k datům.
  • Chráněno : Přístup k datům je povolen členům stejné třídy nebo odvozeným třídám.

Nejlepší využití zapouzdření se provádí, pouze pokud používáme soukromé nebo chráněné. Při používání veřejnosti musíme zajistit, abychom v kódu znali jeho potřebu.

Abychom to vysvětlili, podíváme se na níže uvedenou třídu.

Zde jsou fyzika, chemie a biologie dvojitého typu a jsou to soukromé proměnné. GetTotalMarks () je veřejná metoda používaná k získání celkových známek všech tří předmětů. Nemůžeme přistupovat ke každému předmětu v jiné třídě kvůli jeho úrovni ochrany. Můžeme však získat přístup k této metodě a můžeme ji použít k načtení celkových známek předáním jednotlivých známek předmětu. Značky každého subjektu můžeme nastavit pomocí metody setteru, kterou uvidíme v následujícím příkladu.

Příklad zapouzdření v C ++ s kroky

Níže je krok za krokem instrukce k implementaci zapouzdření.

1) Podívejme se na scénář, ve kterém musíme spočítat celkové známky studenta spočtením součtu ve třech předmětech, tj. Fyzika, chemie a biologie. Podmínkou je však to, že jiná třída

2) Nejprve připojte iostream pro vstupní a výstupní funkce.

3) Použijte název prostoru std

4) Napište třídu pro uložení všech dat a funkcí. Ať to bude Student.

5) Vyhlásit soukromé proměnné fyzika, chemie a biologie. To říká, že nemůžeme přistupovat k proměnným mimo tuto třídu Student. Můžeme k nim však přistupovat lokálně a v případě potřeby upravit hodnotu. Abychom mohli hodnotu upravit, můžeme napsat funkci veřejného nastavovače a přistupovat k ní v jiné třídě.

6) Napište funkci nazvanou SetMarks, která bude použita k nastavení hodnot soukromých proměnných. Protože nemůžeme přistupovat k soukromým proměnným fyzika, chemie a biologie mimo studentskou třídu, potřebujeme tuto funkci k nastavení těchto hodnot z externí třídy. Tato metoda bude veřejná, protože ji musíme získat mimo třídu. K získání hodnot pro každý subjekt potřebujeme tři parametry. Uvnitř funkce nastavíme hodnotu soukromých proměnných.

7) Potřebujeme ještě jednu metodu, abychom získali celkové známky ze všech tří předmětů přidáním známek. Tato metoda je také veřejná. Stačí zavolat tuto metodu mimo třídu a dostaneme součet známek tří předmětů.

8) Nyní mimo tuto třídu napíšeme hlavní funkci.

9) V rámci hlavní funkce nejprve přistoupíme ke studentovi třídy a vytvoříme objekt třídy.

10) V dalším kroku zavoláme funkci pro nastavení známek tří předmětů. Zde předáme značky jako parametry funkci. Níže je část kódu, jak toho dosáhnout.

11) Dále dostaneme celkové známky a vytiskneme hodnotu. A na konci vraťte 0.

12) Dokážete odhadnout výstup kódu? Máš pravdu. Výstup je uveden níže.

Výstup: 240

13) Nyní budeme analyzovat, jak jsme získali tento výstup. Protože jsme neměli přístup k soukromým proměnným, napsali jsme funkci Setter, která přebírá hodnoty z jiné třídy a modifikuje proměnné. Funkce Getter načte proměnné, přidá je a odešle celkové známky studenta. Pokaždé, když předáme funkci setteru tři různé hodnoty, můžeme vidět, že celkové známky, které dostaneme, se budou také měnit.

14) Z toho můžeme říci, že zapouzdření nám pomáhá chránit některá potřebná data a také se používají ke změně jejich hodnot funkce setteru a getteru. Tímto. Ochrana je také dosažena, aniž by to narušovalo náš účel.

Závěr

V tomto článku jsme se dozvěděli, jak lze zapouzdření dosáhnout v C ++. Tímto způsobem můžeme dosáhnout následujících výhod.

  • Třídy po zapouzdření zvyšují čitelnost a snižují složitost.
  • Pomáhá při ochraně dat.
  • Soukromí dat ve třídě lze změnit bez modifikace celého kódu pomocí modifikátorů přístupu.

Doporučené články

Toto je průvodce zapouzdřením v C ++. Zde diskutujeme, jak používat zapouzdření v C ++ spolu s Příkladem zapouzdření v C ++ s kroky. Další informace naleznete také v následujících článcích -

  1. Algoritmus šifrování
  2. Symetrické šifrování klíčů
  3. Co je šifrování?
  4. Úvod do zapouzdření v C
  5. Zapouzdření do JavaScriptu (Výhody)
  6. Přístup modifikátory v PHP

Kategorie: