Introduktion til indkapsling i C ++

Indkapsling betyder processen med at indpakke dataene og funktionerne i en enkelt kapsel. Det beskytter også dataene fra andre klasser ved at begrænse adgangen. Grundlæggende skjuler det dataene. Hvis vi tager et ægte eksempel på college, har vi forskellige afdelinger som fysik, kemi og biologi osv. En situation kan opstå, hvor i, leder af fysikafdelingen har brug for nogle oplysninger fra Biologisk afdeling, han kan ikke få adgang til dataene fra denne afdeling direkte. Først skal han kontakte lederen af ​​Biologiafdelingen og derefter bede ham om at give dataene. Sådan fungerer indkapsling.

Sådan bruges indkapsling i C ++?

For at opnå dette er vi nødt til at følge nedenstående trin:

  1. For det første er vi nødt til at gøre alle datamedlemmer private.
  2. Derefter skal der oprettes offentlige getter- og setterfunktioner for hvert datamedlem på en sådan måde, at get-funktion får værdien af ​​datamedlem, og sætfunktionen indstiller værdien på datamedlemmet.

Indkapsling og skjul af data kan opnås i C ++ ved hjælp af brugerdefinerede typer kaldet klasser. Adgangsspecifikationerne i klasser kan være private, beskyttede eller offentlige. Som standard er alle elementerne i en klasse private. Efter behov kan vi ændre adgangsniveauer. Tre niveauer af adgangsspecifikationer er som nedenfor:

  • Privat : Medlemmer af samme klasse kan få adgang til dataene.
  • Offentlig : Alle klasser har adgang til dataene.
  • Beskyttet : Adgang til data er tilladt for medlemmer af samme klasse eller afledte klasser.

Den bedste brug af indkapsling udføres kun, når vi bruger enten private eller beskyttede. Når vi bruger offentligt, skal vi sikre os, at vi kender dets rette behov i koden.

For at forklare dette vil vi se på nedenstående klasse.

Her er fysik, kemi og biologi af typen dobbelt og er private variabler. GetTotalMarks () er en offentlig metode, der bruges til at hente samlede karakterer for alle de tre emner. Vi kan ikke få adgang til hvert emne i en anden klasse på grund af dets beskyttelsesniveau. Men vi har adgang til metoden og kan bruges til at hente de samlede karakterer ved at videregive individuelle emnemærker. Vi kan indstille mærkerne for hvert enkelt emne ved hjælp af sætningsmetoden, som vi vil se i det næste eksempel.

Eksempel på indkapsling i C ++ med trin

Nedenfor er trin for trin instruktion til implementering af indkapslingen.

1) Lad os se på scenariet, hvor vi har brug for at beregne den studerendes samlede karakter ved at beregne summen i tre fag, dvs. fysik, kemi og biologi. Men betingelsen er sådan, at en anden klasse

2) Først skal du inkludere iostream for input og output funktionalitet.

3) Brug navnet space std

4) Skriv en klasse for at indeholde alle data og funktioner. Lad det være Student.

5) Angiv de private variabler fysik, kemi og biologi. Dette fortæller, at vi ikke kan få adgang til variablerne uden for denne Studentklasse. Men vi kan få adgang til dem lokalt og ændre værdien om nødvendigt. For at ændre værdien kan vi skrive en offentlig setterfunktion og få adgang til den i en anden klasse.

6) Skriv en funktion kaldet SetMarks, som vil blive brugt til at indstille værdierne for de private variabler. Da vi ikke har adgang til de private variabler fysik, kemi og biologi uden for studerendeklassen, har vi brug for denne funktion til at indstille disse værdier fra den eksterne klasse. Denne metode vil være offentlig, da vi har brug for adgang til den uden for klassen. Vi har brug for tre parametre for at få værdierne for hvert emne. Inde i funktionen indstiller vi værdien af ​​de private variabler.

7) Vi har brug for endnu en metode til at få de samlede karakterer fra alle de tre emner ved at tilføje karaktererne. Denne metode er også offentlig. Bare kald denne metode uden for klassen, så får vi summen af ​​karaktererne for de tre emner.

8) Nu uden for denne klasse skriver vi hovedfunktionen.

9) Først inde i hovedfunktionen får vi adgang til klassestuderende og skaber et objekt af klassen.

10) I det næste trin kalder vi funktionen til at indstille mærkerne for de tre motiver. Her overfører vi mærkerne som parametre til funktionen. Nedenfor er kodestykket for at opnå dette.

11) Dernæst får vi de samlede mærker og udskriver værdien. Og returner 0 ved slutningen.

12) Kan du gætte output af koden? Du har ret. Outputet er vist nedenfor.

Output: 240

13) Nu skal vi analysere, hvordan vi fik denne output. Da vi ikke kunne få adgang til de private variabler, skrev vi en Setter-funktion, der tager værdier fra anden klasse og ændrer variablerne. Getter-funktion henter variablerne, tilføjer dem og sender den samlede karakter for eleven. Hver gang vi overfører tre forskellige værdier til setterfunktion, kan vi se, at de samlede karakterer, vi får, også varierer i overensstemmelse hermed.

14) Fra dette kan vi sige, at indkapsling hjælper os med at beskytte nogle af de nødvendige data, også sætter- og getterfunktioner bruges til at ændre deres værdier. Ved at gøre dette. Beskyttelse opnås også uden at hindre vores formål.

Konklusion

I denne artikel har vi lært om, hvordan indkapsling kan opnås i C ++. Ved at gøre dette kan vi opnå følgende fordele.

  • Klasser efter indkapsling øger læsbarheden og reducerer kompleksiteten.
  • Det hjælper med at beskytte dataene.
  • Privatlivets fred for dataene i klassen kan ændres uden at ændre hele koden ved hjælp af adgangsmodifikatorer.

Anbefalede artikler

Dette er en guide til Indkapsling i C ++. Her diskuterer vi, hvordan man bruger indkapsling i C ++ sammen med Eksempel på indkapsling i C ++ med trin. Du kan også se på de følgende artikler for at lære mere -

  1. Krypteringsalgoritme
  2. Symmetrisk nøglekryptering
  3. Hvad er kryptering?
  4. Introduktion til indkapsling i C
  5. Indkapsling i JavaScript (fordele)
  6. Få adgang til modifikatorer i PHP

Kategori: