Sissejuhatus kapseldamisse C ++

Kapseldamine tähendab andmete ja funktsioonide pakkimist ühe kapsli sisse. Samuti kaitseb see juurdepääsu teistest klassidest pärinevatele andmetele. Põhimõtteliselt peidab see andmeid. Kui võtame reaalse maailma näite kolledžist, on meil erinevad osakonnad nagu füüsika, keemia ja bioloogia jne. Võib tekkida olukord, kus füüsikaosakonna juhataja vajab bioloogiaosakonnast teavet, ta ei saa pääsete otse selle osakonna andmetele juurde. Esiteks peaks ta võtma ühendust bioloogiaosakonna juhatajaga, seejärel paluma tal andmed esitada. Nii toimib kapseldamine.

Kuidas kasutada kapseldamist C ++ -s?

Selle saavutamiseks peame järgima järgmisi samme:

  1. Esiteks peame tegema kõik andmeliikmed privaatseks.
  2. Seejärel tuleks iga andmeliikme jaoks luua avalik hanke- ja seterdamisfunktsioon selliselt, et funktsioon get saaks andmeliikme väärtuse ja seatud funktsioon seab andmeliikme väärtuse.

Kapseldamise ja andmete peitmise saab C ++ -s saavutada, kasutades kasutaja määratletud tüüpe, mida nimetatakse klassideks. Klasside juurdepääsu spetsifikatsioonid võivad olla privaatsed, kaitstud või avalikud. Vaikimisi on kõik klassi üksused privaatsed. Vastavalt vajadusele saame juurdepääsu taset muuta. Kolm juurdepääsu taseme määratlejat on järgmised:

  • Privaatne : sama klassi liikmed saavad andmetele juurde pääseda.
  • Avalik : andmetele pääsevad juurde kõik klassid.
  • Kaitstud : sama klassi või tuletatud klassi liikmetele on juurdepääs andmetele lubatud.

Kapseldamist kasutatakse kõige paremini ainult siis, kui kasutame kas privaatset või kaitstud. Avalikkuse kasutamisel peame veenduma, et teame koodis selle õiget vajadust.

Selle selgitamiseks heidame pilgu allolevale klassile.

Füüsika, keemia ja bioloogia on siin topelttüüpi ja privaatsed muutujad. GetTotalMarks () on avalik meetod, mida kasutatakse kõigi kolme subjekti kogupunktide saamiseks. Me ei pääse iga õppeaine juurde mõnes teises klassis selle kaitsetaseme tõttu. Kuid me pääseme sellele meetodile juurde ja seda saab kasutada kogupunktide saamiseks üksikute teemamärkide läbimisel. Iga subjekti hindeid saame seada setteri meetodi abil, mida vaatame järgmises näites.

Näide kapseldamisest astmetega C ++

Allpool on samm-sammult juhised kapseldamise rakendamiseks.

1) Mõelgem stsenaariumile, kus peame arvutama õpilase hindepunktide summa, arvutades summa kolmes õppeaines, st füüsika, keemia ja bioloogia. Kuid tingimus on selline, et teine ​​klass

2) Esiteks lisage sisend- ja väljundfunktsioonide jaoks iostream.

3) Kasutage nimeruumi std

4) Kõigi andmete ja funktsioonide hoidmiseks kirjutage klass. Las see olla üliõpilane.

5) Kuulutage eramuutujad füüsika, keemia ja bioloogia. See ütleb, et me ei pääse muutujatele juurde sellest õpilasklassist. Kuid me pääseme neile juurde kohapeal ja vajadusel saame väärtust muuta. Väärtuse muutmiseks võime kirjutada avaliku setteri funktsiooni ja pääseda sellele juurde teises klassis.

6) Kirjutage funktsioon nimega SetMarks, mida kasutatakse privaatsete muutujate väärtuste seadmiseks. Kuna väljaspool õpilasklassi ei pääse me juurde füüsilistele, keemia- ja bioloogilistele muutujatele, vajame seda funktsiooni nende väärtuste määramiseks välisest klassist. See meetod on avalik, kuna me peame sellele juurde pääsema väljaspool klassi. Iga aine väärtuste saamiseks on vaja kolme parameetrit. Funktsiooni sees määrame privaatsete muutujate väärtuse.

7) Vajame veel ühte meetodit, et saada hinded kokku kõigi kolme õppeaine hulgast. See meetod on ka avalik. Helistage see meetod lihtsalt klassiväliselt ja saame kolme õppeaine hinnete summa.

8) Nüüd väljaspool seda klassi kirjutame põhifunktsiooni.

9) Kõigepealt pääseme põhifunktsiooni juurde klassi õpilase juurde ja loome klassi objekti.

10) Järgmises etapis kutsume kolme subjekti märkide määramise funktsiooni. Siin edastame märgid parameetrina funktsioonile. Allpool on kood selle saavutamiseks.

11) Järgmisena saame kokku märgid ja prindime väärtuse. Ja tagastage lõpus 0.

12) Kas oskate ära arvata koodi väljundi? Sul on õigus. Väljund on näidatud allpool.

Väljund: 240

13) Nüüd analüüsime, kuidas me selle väljundi saime. Kuna me ei pääsenud privaatsetele muutujatele juurde, kirjutasime funktsiooni Setter, mis võtab teiste klasside väärtused ja muudab muutujaid. Getteri funktsioon tõmbab muutujad, lisab need ja saadab õpilase hinded kokku. Iga kord, kui anname setteri funktsioonile kolm erinevat väärtust, näeme, et ka meie saadavad hinded erinevad vastavalt.

14) Sellest võib öelda, et kapseldamine aitab meil kaitsta osa vajalikest andmetest ning nende väärtuste muutmiseks kasutatakse ka setteri ja getteri funktsioone. Seda tehes. Kaitse saavutatakse ka meie eesmärki takistamata.

Järeldus

Selles artiklis oleme õppinud, kuidas kapseldamist C ++-s saavutada. Sellega saavutame järgmised eelised.

  • Klassid pärast kapseldamist suurendavad loetavust ja vähendavad keerukust.
  • See aitab andmeid kaitsta.
  • Klassi andmete privaatsust saab muuta ilma kogu koodi muutmata juurdepääsu modifikaatorite abil.

Soovitatavad artiklid

See on juhend kapseldusse C ++. Siin arutleme, kuidas kasutada kapseldamist C ++ koos näitega kapseldamisest C ++ etappidega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Krüptimisalgoritm
  2. Sümmeetriline võtme krüptimine
  3. Mis on krüptimine?
  4. Sissejuhatus kapseldamisse C
  5. Kapseldamine JavaScripti (eelised)
  6. Juurdepääs modifikaatoritele PHP-s

Kategooria: