Uvod v kapsulacijo v C ++

Inkapsulacija pomeni postopek zapiranja podatkov in funkcij v eno samo kapsulo. Podatke iz drugih razredov ščiti tudi tako, da omejuje dostop. V osnovi skriva podatke. Če vzamemo primer realnega sveta na fakulteti, imamo različne oddelke, kot so fizika, kemija in biologija itd. Lahko se pojavi situacija, ko vodja oddelka za fiziko potrebuje nekaj informacij iz oddelka za biologijo, ne more dostop do podatkov iz tega oddelka neposredno. Najprej bi se moral obrniti na vodjo oddelka za biologijo, nato pa od njega zahtevati, naj poda podatke. Tako deluje enkapsulacija.

Kako uporabiti enkapsulacijo v C ++?

Da bi to dosegli, moramo slediti spodnjim korakom:

  1. Najprej moramo narediti zasebne vse člane podatkov.
  2. Nato je treba za vsakega podatkovnega člana ustvariti javne funkcije pridobivanja in nastavitve tako, da funkcija get dobi vrednost podatkovnega člana in funkcija set nastavi vrednost podatkovnega člana.

Zapiranje in skrivanje podatkov je mogoče doseči v C ++ z uporabo uporabniško definiranih vrst, imenovanih Razredi. Specifični podatki o dostopu v razredih so lahko zasebni, zaščiteni ali javni. Vsi predmeti v razredu so privzeto zasebni. Glede na potrebe lahko spremenimo ravni dostopa. Spodaj so navedene tri stopnje specifikatorjev dostopa:

  • Zasebno : Člani istega razreda lahko dostopajo do podatkov.
  • Javno : Do vseh podatkov lahko dostopajo vsi razredi.
  • Zaščiteno : Dostop do podatkov je dovoljen za pripadnike istega razreda ali izpeljanih razredov.

Najbolje uporabimo enkapsulacijo le, če uporabljamo zasebno ali zaščiteno. Pri javni uporabi moramo poskrbeti, da se v kodi zavedamo njene ustrezne potrebe.

Za razlago tega si bomo ogledali spodnji razred.

Tu so fizika, kemija in biologija dvojni in so zasebne spremenljivke. GetTotalMarks () je javna metoda, ki se uporablja za pridobivanje skupnih ocen vseh treh predmetov. Ne moremo dostopati do vsakega predmeta v drugem razredu zaradi njegove stopnje zaščite. Do metode pa lahko dostopamo in jo lahko uporabimo za pridobivanje skupnih ocen s prehodom posameznih predmetnih oznak. Oznake vsakega predmeta lahko nastavimo s pomočjo metode setter, ki jo bomo pogledali v naslednjem primeru.

Primer inkapsulacije v C ++ s koraki

Spodaj je korak za korakom navodilo za izvedbo kapsule.

1) Razmislimo o scenariju, v katerem moramo izračunati skupno oceno študenta z izračunom vsote pri treh predmetih, to so fizika, kemija in biologija. Toda pogoj je takšen, da drug razred

2) Najprej vključite iostream za vhodno in izhodno funkcionalnost.

3) Uporabite ime prostora std

4) Napišite razred, v katerem bodo shranjeni vsi podatki in funkcije. Naj bo Študent.

5) Objavite zasebne spremenljivke fiziko, kemijo in biologijo. To pove, da ne moremo dostopati do spremenljivk izven tega razreda Študent. Do njih pa lahko dostopamo lokalno in po potrebi spremenimo vrednost. Za spremembo vrednosti lahko napišemo funkcijo javnega nastavitve in dostop do nje v drugem razredu.

6) Napišite funkcijo, imenovano SetMarks, ki bo uporabljena za nastavitev vrednosti zasebnih spremenljivk. Ker do zasebnih spremenljivk fizike, kemije in biologije ne moremo dostopati zunaj učnega razreda, potrebujemo to funkcijo za nastavitev teh vrednosti iz zunanjega razreda. Ta metoda bo javna, saj do nje potrebujemo dostop zunaj razreda. Potrebujemo tri parametre, da dobimo vrednosti za vsak predmet. Znotraj funkcije bomo nastavili vrednost zasebnih spremenljivk.

7) Potrebujemo še eno metodo, da z dodajanjem ocen dobimo skupno oceno vseh treh predmetov. Ta metoda je tudi javna. Samo pokličite to metodo izven razreda in dobili bomo vsoto ocen treh predmetov.

8) Zdaj zunaj tega razreda bomo napisali glavno funkcijo.

9) Najprej znotraj glavne funkcije dostopamo do učencev razreda in ustvarimo predmet razreda.

10) V naslednjem koraku bomo poklicali funkcijo za nastavitev oznak treh predmetov. Tu bomo oznake kot parametre prenesli v funkcijo. Spodaj je del kode za dosego tega.

11) Nato dobimo skupno oceno in natisnemo vrednost. In vrnite 0 na koncu.

12) Ali lahko uganite izhod kode? Prav imaš. Izhod je prikazan spodaj.

Izhod: 240

13) Zdaj bomo analizirali, kako smo dobili ta rezultat. Ker nismo mogli dostopati do zasebnih spremenljivk, smo napisali funkcijo Setter, ki odvzema vrednosti iz drugega razreda in spreminja spremenljivke. Funkcija Getter pridobi spremenljivke, jih doda in pošlje študentu skupno oceno. Vsakič, ko v nastavitveno funkcijo prenesemo tri različne vrednosti, lahko opazimo, da se bodo tudi skupne ocene spreminjale.

14) Iz tega lahko rečemo, da nam enkapsulacija pomaga pri zaščiti nekaterih potrebnih funkcij za določanje podatkov in getter, ki spreminjajo njihove vrednosti. S tem. Zaščita dosežemo tudi brez oviranja našega namena.

Zaključek

V tem članku smo izvedeli, kako je mogoče doseči enkapsulacijo v C ++. S tem lahko dosežemo naslednje prednosti.

  • Razredi po inkapsulaciji povečajo berljivost in zmanjšajo zahtevnost.
  • Pomaga pri varovanju podatkov.
  • Zasebnost podatkov v razredu lahko spremenite brez spreminjanja celotne kode z uporabo modifikatorjev dostopa.

Priporočeni članki

To je vodnik za Encapsulacijo v C ++. Tukaj razpravljamo, kako uporabiti enkapsulacijo v C ++ skupaj s primerom enkapsulacije v C ++ s koraki. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Algoritem šifriranja
  2. Simetrična šifriranje ključev
  3. Kaj je šifriranje?
  4. Uvod v kapsulacijo v C
  5. Inkapsulacija v JavaScript (Prednosti)
  6. Dostop do modifikatorjev v PHP