Úvod do enkapsulácie v C ++

Zapuzdrenie znamená proces zabalenia údajov a funkcií do jednej kapsuly. Zabezpečuje tiež údaje z iných tried obmedzením prístupu. V podstate skrýva údaje. Ak si vezmeme príklad vysokej školy v reálnom svete, máme rôzne oddelenia ako fyzika, chémia a biológia atď. Môže nastať situácia, keď vedúci oddelenia fyziky potrebuje nejaké informácie z oddelenia biológie, nemôže priamy prístup k údajom z tohto oddelenia. Najprv by sa mal obrátiť na vedúceho oddelenia biológie a potom ho požiadať o poskytnutie údajov. Takto zapuzdrenie funguje.

Ako používať zapuzdrenie v C ++?

Aby sme to dosiahli, musíme postupovať podľa nasledujúcich krokov:

  1. Najskôr musíme priviesť všetkých členov údajov k súkromiu.
  2. Potom by sa pre každý dátový člen mali vytvoriť verejné funkcie getra a setteru takým spôsobom, že funkcia get získa hodnotu dátového člena a funkcia set nastaví hodnotu dátového člena.

Zapuzdrenie a skrytie údajov je možné dosiahnuť v C ++ pomocou užívateľsky definovaných typov nazývaných triedy. Špecifikátory prístupu v triedach môžu byť súkromné, chránené alebo verejné. Štandardne sú všetky položky v triede súkromné. Podľa potreby môžeme zmeniť úrovne prístupu. Tri úrovne špecifikátorov prístupu sú uvedené nižšie:

  • Súkromné : K údajom majú prístup členovia rovnakej triedy.
  • Verejné : Všetky triedy majú prístup k údajom.
  • Chránené : Prístup k údajom je povolený členom rovnakej triedy alebo odvodených tried.

Najlepšie sa používa zapuzdrenie iba v prípade, že používame buď súkromné ​​alebo chránené. Pri používaní verejnosti sa musíme ubezpečiť, že vieme o jej potrebe v kóde.

Aby sme to vysvetlili, pozrieme sa na nižšie uvedenú triedu.

Fyzika, chémia a biológia sú tu dvojakého typu a sú to súkromné ​​premenné. GetTotalMarks () je verejná metóda, ktorá sa používa na získanie celkových známok všetkých troch predmetov. Nemôžeme pristupovať ku každému predmetu v inej triede z dôvodu jeho úrovne ochrany. Môžeme však získať prístup k metóde a môžeme ju použiť na načítanie celkových známok absolvovaním jednotlivých značiek predmetov. Značky každého subjektu môžeme nastaviť pomocou metódy nastavovania, ktorú si pozrieme v nasledujúcom príklade.

Príklad zapuzdrenia v C ++ s krokmi

Nižšie je uvedený krok za krokom inštrukcia na implementáciu zapuzdrenia.

1) Pozrime sa na scenár, v ktorom musíme vypočítať celkové známky študenta vypočítaním súčtu v troch predmetoch, tj fyzika, chémia a biológia. Podmienka je však taká, že iná trieda

2) Po prvé, zahrňte stream proti funkcii vstupu a výstupu.

3) Použite názov priestoru std

4) Napíšte triedu, v ktorej budú uložené všetky údaje a funkcie. Nech je to Študent.

5) Vyhláste za súkromné ​​premenné fyziku, chémiu a biológiu. To hovorí, že mimo tejto triedy Student nemôžeme mať prístup k premenným. Môžeme k nim však pristupovať lokálne a podľa potreby hodnotu upraviť. Aby sme mohli zmeniť hodnotu, môžeme napísať funkciu verejného nastavovača a pristupovať k nej v inej triede.

6) Napíšte funkciu nazvanú SetMarks, ktorá sa použije na nastavenie hodnôt súkromných premenných. Pretože nemôžeme pristupovať k súkromným premenným fyzika, chémia a biológia mimo študentskej triedy, potrebujeme túto funkciu na nastavenie týchto hodnôt z externej triedy. Táto metóda bude verejná, pretože k nej musíme pristupovať mimo triedy. Na získanie hodnôt pre každý subjekt potrebujeme tri parametre. Vo vnútri funkcie nastavíme hodnotu súkromných premenných.

7) Potrebujeme ešte jednu metódu, aby sme získali celkové známky zo všetkých troch predmetov pridaním značiek. Táto metóda je tiež verejná. Stačí zavolať túto metódu mimo triedy a dostaneme súčet známok troch predmetov.

8) Teraz mimo tejto triedy napíšeme hlavnú funkciu.

9) V rámci hlavnej funkcie najskôr vstúpime k študentovi triedy a vytvoríme predmet triedy.

10) V ďalšom kroku zavoláme funkciu na nastavenie značiek troch predmetov. Tu odovzdáme značky ako parametre funkcii. Nižšie je uvedený kus kódu na dosiahnutie tohto cieľa.

11) Ďalej dostaneme celkové známky a vytlačíme hodnotu. A na konci vráti 0.

12) Dokážete uhádnuť výstup kódu? Máš pravdu. Výstup je uvedený nižšie.

Výstup: 240

13) Teraz budeme analyzovať, ako sme tento výstup dosiahli. Pretože sme nemohli získať prístup k súkromným premenným, napísali sme funkciu Setter, ktorá preberá hodnoty z inej triedy a upravuje premenné. Funkcia Getter načíta premenné, pridá ich a odošle celkové známky študenta. Zakaždým, keď do funkcie nastavenia nastavíme tri rôzne hodnoty, môžeme vidieť, že aj celkové známky, ktoré dostaneme, sa budú tiež meniť.

14) Z toho môžeme povedať, že zapuzdrenie nám pomáha chrániť niektoré potrebné údaje. Na zmenu ich hodnôt sa používajú aj funkcie nastavovača a getra. Tým, že robí to. Ochrana sa tiež dosiahne bez toho, aby sme obmedzili náš účel.

záver

V tomto článku sme sa dozvedeli, ako sa dá enkapsulácia dosiahnuť v C ++. Týmto môžeme dosiahnuť nasledujúce výhody.

  • Triedy po zapuzdrení zvyšujú čitateľnosť a znižujú zložitosť.
  • Pomáha pri ochrane údajov.
  • Súkromie údajov v triede sa dá zmeniť bez úpravy celého kódu pomocou modifikátorov prístupu.

Odporúčané články

Toto je sprievodca zapuzdrením v C ++. Tu diskutujeme o tom, ako používať zapuzdrenie v C ++ spolu s príkladom zapuzdrenia v C ++ s krokmi. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Algoritmus šifrovania
  2. Symetrické šifrovanie kľúčov
  3. Čo je šifrovanie?
  4. Úvod do enkapsulácie v C
  5. Zapuzdrenie do JavaScriptu (Výhody)
  6. Modifikátory prístupu v PHP

Kategórie: